在HTML中使用history.pushState()
方法可以修改瀏覽器歷史記錄的狀態(tài),并改變當(dāng)前URL而不刷新頁(yè)面。
語(yǔ)法:
history.pushState(state, title, url);
參數(shù)解釋:
state
:一個(gè)對(duì)象,表示要添加到歷史記錄中的狀態(tài)對(duì)象。
title
:一個(gè)字符串,表示新的歷史記錄條目的標(biāo)題,大多數(shù)瀏覽器并不使用該參數(shù)。
url
:一個(gè)字符串,表示新的歷史記錄條目的URL。
示例代碼:
history.pushState({page: 1}, "Page 1", "/page1");
在上面的示例中,pushState
方法將一個(gè)狀態(tài)對(duì)象 {page: 1}
添加到瀏覽器的歷史記錄中,并且將URL更改為 /page1
。頁(yè)面不會(huì)刷新,但是URL將會(huì)更新。
注意:
使用 pushState
方法不會(huì)觸發(fā)任何頁(yè)面加載事件,所以你需要自己處理URL的變化,并進(jìn)行相應(yīng)的操作。
對(duì)于使用 pushState
方法修改URL的頁(yè)面,可以使用 popstate
事件來(lái)監(jiān)聽(tīng)URL的變化,當(dāng)用戶點(diǎn)擊瀏覽器的前進(jìn)或后退按鈕時(shí)會(huì)觸發(fā)該事件。