History對象
History
對象允許操作浏覽器的曾經在标簽頁或者架構裡通路的會話曆史記錄。
屬性
-
: 隻讀,傳回一個整數,該整數表示會話曆史中元素的數目,包括目前加載的頁,例如在一個新的頁籤加載的一個頁面中,這個屬性傳回history.length
。1
-
: 允許history.scrollRestoration
應用程式在曆史導航上顯式地設定預設滾動恢複行為,此屬性可以是自動的Web
或者手動的auto
manual
-
隻讀,傳回一個表示曆史堆棧頂部的狀态的值,這是一種可以不必等待history.state
事件而檢視狀态的方式。popstate
方法
-
:history.back()
在浏覽器曆史記錄裡前往上一頁,使用者可點選浏覽器左上角的傳回history.back()
按鈕模拟此方法,等價于←
,當浏覽器會話曆史記錄處于第一頁時調用此方法沒有效果,而且也不會報錯。history.go(-1)
-
history.forward()
在浏覽器曆史記錄裡前往下一頁,使用者可點選浏覽器左上角的前進history.forward()
→
,當浏覽器曆史棧處于最頂端時,目前頁面處于最後一頁時調用此方法沒有效果也不報錯。history.go(1)
-
history.go()
通過目前頁面的相對位置從浏覽器曆史記錄即會話記錄加載頁面,比如參數為history.go(N)
的時候為上一頁,參數為-1
的時候為下一頁,當整數參數超出界限時,例如如果目前頁為第一頁,前面已經沒有頁面了,此時如果傳參的值為1
,那麼這個方法沒有任何效果也不會報錯,調用沒有參數的-1
方法或者不是整數的參數時也沒有效果,這點與支援字元串作為go()
參數的url
有點不同。IE
-
history.pushState()
該方法向目前浏覽器會話的曆史堆棧中添加一個狀态history.pushState(state, title[, url])
,其按指定的名稱和state
(如果提供該參數)将資料URL
進會話曆史棧,資料被push
進行不透明處理,你可以指定任何可以被序列化的DOM
對象。JavaScript
-
history.replaceState()
該方法修改目前曆史記錄實體,按指定的資料、名稱和history.replaceState(stateObj, title[, url])
(如果提供該參數),更新曆史棧上最新的入口,這個資料被URL
進行了不透明處理,你可以指定任何可以被序列化的DOM
JavaScript
每日一題
https://github.com/WindrunnerMax/EveryDay
參考
https://developer.mozilla.org/zh-CN/docs/Web/API/History