H5的pushState和replaceState是History對象的兩個方法,它們都用于修改瀏覽器的歷史記錄。
pushState方法用于添加一個新的歷史記錄,并且不會刷新頁面。它接受三個參數:state、title和url。
例子:
history.pushState({page: 1}, "Page 1", "/page1");
以上代碼將添加一個新的歷史記錄,URL為/page1,狀態對象為{page: 1}。
replaceState方法用于替換當前的歷史記錄,并且也不會刷新頁面。它接受三個參數:state、title和url,和pushState方法的參數相同,只是replaceState會替換當前的歷史記錄,而不是添加一個新的。
history.replaceState({page: 2}, "Page 2", "/page2");
以上代碼將替換當前的歷史記錄,URL為/page2,狀態對象為{page: 2}。
使用pushState和replaceState方法可以實現無刷新的頁面跳轉和頁面狀態管理,可以配合popstate事件來監聽歷史記錄的變化,并根據狀態對象進行相應的操作。