window.onpopstate事件介紹

當(dāng)活動(dòng)歷史記錄條目更改時(shí),將觸發(fā)popstate事件。

//============================================================================================================================:
      //====>window.onpopstate事件介紹
      //===:history.pushState()或history.replaceState()不會(huì)觸發(fā)popstate事件
      //===:在支持h5的瀏覽器中,有一個(gè)window.onpopstate事件,該事件可以監(jiān)聽如下操作
      //=======:01.點(diǎn)擊瀏覽器的前進(jìn)按鈕和后退按鈕
      //=======:02.執(zhí)行js代碼history.go(n)/history.forward()/history.back()

      //===注意點(diǎn):
      //===>不同瀏覽器在加載頁(yè)面時(shí)處理popstate事件的形式存在差異,頁(yè)面加載時(shí)Chrome和Safari通常會(huì)出發(fā)(emit)popstate事件,但是Fire則不會(huì)
      //===>需要注意的是調(diào)用history.pushState()或history.replaceState()不會(huì)觸發(fā)popstate事件
      //===>只有在做出瀏覽器動(dòng)作時(shí),才會(huì)觸發(fā)該事件,如用戶點(diǎn)擊瀏覽器的回退按鈕(或者在Javascript代碼中調(diào)用history.back())
      //===>特別注意點(diǎn):并不是只要瀏覽器點(diǎn)擊前進(jìn)后退按鈕或者執(zhí)行js代碼history.go(n)/history.forward()/history.back()就能觸發(fā)
      //============>該事件只針對(duì)同一個(gè)文檔,如果瀏覽歷史的切換,導(dǎo)致加載不同的文檔,該事件也不會(huì)觸發(fā)
      //===:舉例子:
      //===:01.先訪問www.baidu.com===>這時(shí)加載的是百度的首頁(yè)文檔
      //===:02.在訪問www.taobao.com===>這時(shí)加載的是淘寶的的首頁(yè)文檔
      //===:03.點(diǎn)擊瀏覽器的返回按鈕從www.taobao.com到www.baidu.com就不會(huì)觸發(fā)onpopstate事件

      //===:觸發(fā)情況:
      //===:01.當(dāng)前地址是:www.baidu.com
      //===:02.當(dāng)我們使用了window.history.pushState("", "", '?id=btn2');后
      //===:瀏覽器地址為www.baidu.com?id=2
      //===:但是由于window.history.pushState只是使瀏覽器地址欄顯示為 www.baidu.com?id=2,但并不會(huì)導(dǎo)致瀏覽器加載 www.baidu.com?id=2 
      //===:甚至不會(huì)檢查www.baidu.com?id=2 是否存在,
      //===:所以前后兩次都是www.baidu.com這個(gè)文檔,但是又給瀏覽器的history添加了一條歷史記錄
      //===:由于前后兩次的文檔相同,所以點(diǎn)擊瀏覽的返回按鈕或者js執(zhí)行history.back()等操作從www.baidu.com?id=2到www.baidu時(shí)
      //===:會(huì)觸發(fā)onpopstate事件
      //============================================================================================================================
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容