HTML5引入了history.pushState()和history.replaceState()這兩個方法,他們允許添加和修改history實體。同時,這些方法會和window.onpostate事件一起工作.
- replaceState是替換當前的歷史信息,pushState是添加一條新的歷史記錄
- 這兩個方法有三個參數(state,title,url);
- 第一個參數是一個json格式的參數,他可以存儲我們在當前歷史以后會用到的數據,也可以傳null;第二個官方的介紹是說頁面的標題,不過暫時用不到,直接傳null就可以了;第三個參數是當前歷史的url,如果為null則表示當前歷史的url和上一歷史的url沒發生變化
示例:history.pushState({name:”名字”},null,”?name=張三”);
注意:1.使用這兩個方法時並不會直接觸發onpopstate,而是存儲了歷史記錄后前進或后退才會會觸發onpopstate事件
2.history.pushstate有安全限制,其中之一是不允許應用推動跨url-s歷史起源;服務器ip的端口不同和直接在電腦本地運行的html都會報錯: