history.pushState() 給網站新增和修改瀏覽歷史記錄
假設一個使用場景:
後臺管理系統專案,左右固定佈局。左側是通用佈局,右側頁面是通過ajax切換的
當我們切換選單後,想返回上一頁,通常點選瀏覽器自帶的回退。會發現回退的不是上一頁,而是最開始開啟這個專案的那一頁。並且當我們重新整理當前頁面。也會自動回退到最初始的頁面
原因:我們切換選單的時候並沒有跳轉頁面,只是用過ajax把我們想要的那也插在右側DIV中。沒有跳轉頁面就意味著瀏覽器沒有存下歷史記錄。
解決辦法:
每次呼叫ajax的時候,並且呼叫成功,我們都在內部加上這個 history.pushState()方法
history.pushState方法接受三個引數,依次為:
state:一個與指定網址相關的狀態物件,popstate事件觸發時,該物件會傳入回撥函式。如果不需要這個物件,此處可以填null。
title:新頁面的標題,但是所有瀏覽器目前都忽略這個值,因此這裡可以填null。
url:新的網址,必須與當前頁面處在同一個域。瀏覽器的位址列將顯示這個網址。
假定當前網址是example.com/1.html,我們使用pushState方法在瀏覽記錄(history物件)中新增一個新記錄。
var stateObj = { foo: 'bar' };
history.pushState(stateObj, 'page 2', '2.html');
這樣位址列就可以看到我們自己存的標識了。歷史記錄也就存進去了
舉個例子:
相關文章
- Html5使用history物件history.pushState()和history.replaceState()方法新增和修改瀏覽歷史記錄HTML物件
- 操縱瀏覽器歷史記錄 : popstate() 、 history.pushState() 、 window.history.pushState()瀏覽器
- 理解瀏覽器的歷史記錄瀏覽器
- 瀏覽器歷史記錄的返回瀏覽器
- 使用 JavaScript 操作瀏覽器歷史記錄 APIJavaScript瀏覽器API
- 理解瀏覽器歷史記錄(2)- hashchange、pushState瀏覽器
- Mac上的Safari瀏覽器如何檢視歷史記錄?Mac瀏覽器
- 修改Kali Linux終端歷史記錄大小Linux
- ATRESplayer PREMIUM攜手華為提升使用者體驗,突破瀏覽量歷史記錄REM
- 推薦一個 Chrome 瀏覽歷史記錄管理的擴充套件 - History Trends UnlimitedChrome套件MIT
- Cookie記錄瀏覽記錄Cookie
- 如何在官網中下載歷史版本的火狐瀏覽器瀏覽器
- win10瀏覽器檢視歷史紀錄卡死恢復方法Win10瀏覽器
- 【譯】瀏覽器user-agent的歷史瀏覽器
- 【工具】火狐瀏覽器歷史版本下載瀏覽器
- 讓 IE 瀏覽器成為歷史,這是微軟給的最好禮物瀏覽器微軟
- git重寫歷史記錄Git
- SAP歷史更改記錄函式函式
- Jupyter預設目錄和預設瀏覽器修改瀏覽器
- win10怎樣看歷史記錄_win10檢視歷史記錄的方法Win10
- 成人網站的“歷史貢獻”網站
- SAP CRM和C4C的客戶主資料修改歷史記錄查詢
- 「前端」History API與瀏覽器歷史堆疊管理前端API瀏覽器
- JavaScript瀏覽器歷史的語法小問題JavaScript瀏覽器
- chrome瀏覽器使用記錄Chrome瀏覽器
- git log檢視提交歷史記錄Git
- EBS:銷售訂單歷史記錄
- win10怎麼清除更新歷史記錄 win10電腦如何清除更新歷史記錄Win10
- 深入學習History物件管理瀏覽器會話歷史物件瀏覽器會話
- 主流瀏覽器核心介紹(前端開發值得了解的瀏覽器核心歷史)瀏覽器前端
- Git 學習記錄之演變歷史Git
- ClipboardManager for Mac(剪貼簿歷史記錄管理)Mac
- 清除 GitHub 歷史記錄的隱私資訊Github
- Linux檢視歷史記錄小技巧Linux
- Linux下mysql的歷史操作記錄LinuxMySql
- Linux中禁用命令歷史記錄Linux
- 透過歷史記錄執行本地模型模型
- win10如何關閉工作列歷史記錄_win10工作列歷史記錄怎麼關閉Win10