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');
這樣位址列就可以看到我們自己存的標識了。歷史記錄也就存進去了
舉個例子:
相關文章
- 操縱瀏覽器歷史記錄 : popstate() 、 history.pushState() 、 window.history.pushState()瀏覽器
- 使用 JavaScript 操作瀏覽器歷史記錄 APIJavaScript瀏覽器API
- 14.3 瀏覽歷史
- Mac上的Safari瀏覽器如何檢視歷史記錄?Mac瀏覽器
- 修改Kali Linux終端歷史記錄大小Linux
- 推薦一個 Chrome 瀏覽歷史記錄管理的擴充套件 - History Trends UnlimitedChrome套件MIT
- ATRESplayer PREMIUM攜手華為提升使用者體驗,突破瀏覽量歷史記錄REM
- TcxMRUEdit 最近歷史記錄
- 【譯】瀏覽器user-agent的歷史瀏覽器
- 【工具】火狐瀏覽器歷史版本下載瀏覽器
- win10瀏覽器檢視歷史紀錄卡死恢復方法Win10瀏覽器
- Jupyter預設目錄和預設瀏覽器修改瀏覽器
- Dynamics CRM 在表單上顯示更改歷史記錄(稽核歷史記錄)
- SAP CRM和C4C的客戶主資料修改歷史記錄查詢
- linux 清空歷史執行記錄Linux
- win10怎樣看歷史記錄_win10檢視歷史記錄的方法Win10
- git log檢視提交歷史記錄Git
- EBS:銷售訂單歷史記錄
- Linux檢視歷史記錄小技巧Linux
- win10怎麼清除更新歷史記錄 win10電腦如何清除更新歷史記錄Win10
- 如何清除Safari,Chrome和Firefox中的快取,歷史記錄和CookieChromeFirefox快取Cookie
- 透過歷史記錄執行本地模型模型
- Git 學習記錄之演變歷史Git
- 如何禁止input輸入的歷史記錄?
- ClipboardManager for Mac(剪貼簿歷史記錄管理)Mac
- 案例:商品瀏覽記錄的實現
- win10如何關閉工作列歷史記錄_win10工作列歷史記錄怎麼關閉Win10
- windows10系統如何在桌面新增檔案歷史記錄列表快捷方式Windows
- Win10系統下谷歌瀏覽器怎麼新增信任網址/站點Win10谷歌瀏覽器
- 關於直播視訊格式和瀏覽器相容性歷史的來龍去脈瀏覽器
- Wordpress網站修改,Wordpress網站內容和設定修改方法網站
- 查詢SQL Server的歷史執行記錄SQLServer
- SqlServer查詢資料改動歷史記錄SQLServer
- 清除 GitHub 歷史記錄的隱私資訊Github
- 清除“遠端桌面連線”的歷史記錄
- 瀏覽器錄屏技術:探索網頁內容的視覺記錄之道瀏覽器網頁視覺
- php實現網站瀏覽足跡功能PHP網站
- 記錄:舊版谷歌瀏覽器不提示儲存密碼,修改瀏覽器設定裡的儲存密碼無效谷歌瀏覽器密碼