1. 程式人生 > >監聽瀏覽器返回鍵、後退、上一頁事件(popstate)操作返回鍵

監聽瀏覽器返回鍵、後退、上一頁事件(popstate)操作返回鍵

som cnblogs back eba spa 查詢 sta ces 關閉

  在WebApp或瀏覽器中,會有點擊返回、後退、上一頁等按鈕實現自己的關閉頁面、調整到指定頁面、確認離開頁面或執行一些其它操作的需求。可以使用 popstate 事件進行監聽返回、後退、上一頁操作。

  一、簡單介紹 history 中的操作

    1.window.history.back(),後退

    2.window.history.forward(),前進

    3.window.history.go(num),前進或後退指定數量歷史記錄

    4.window.history.pushState(state, title, utl),在頁面中創建一個 history 實體。直接添加到歷史記錄中。

      參數:  state:存儲一個對象,可以添加相關信息,可以使用 history.state 讀取其中的內容。

           title:歷史記錄的標題。

           url:創建的歷史記錄的鏈接。進行歷史記錄操作時會跳轉到該鏈接。

    5.window.history.replaceState(),修改當前的 history 實體。

    6.popstate 事件,history 實體改變時觸發的事件。

    7.window.history.state,會獲得 history 實體中的 state 對象。

  二、使用方法

    取消默認的返回操作:

    1.添加一條 history 實體作為替代原來的 history 實體

function pushHistory(){
  var state = {
       title: "title",
       url: "#"     
    }
  window.history.pushState(state, "title", "#");   
}
pushHistory()

    2.監聽 popstate 事件

window.addEventListener("popstate", function(){
    //doSomething
}, false)

  三、註意事項

    1.每次返回都會消耗一個 history 實體,若用戶選擇取消離開,則需要繼續 pushState 一個實體

    2.pushState 只能一個實體,多個實體返回會出錯。使用 window.history.state 查詢是否存在添加的實體。

    

    

監聽瀏覽器返回鍵、後退、上一頁事件(popstate)操作返回鍵