我已經搜索谷歌和在這個論壇上的其他一些問題,但它似乎沒有回答我的問題。基於MDN https://developer.mozilla.org/en-US/docs/Web/API/window.onpopstatejavascript onpopstate替代與onhashchange相同的功能
:
注意,只是打電話
history.pushState()
或history.replaceState()
不會引發popstate
事件。popstate
事件只能通過瀏覽器操作觸發,例如點擊後退按鈕(或在JavaScript中調用history.back()
)。而且,只有當用戶在同一文檔的兩個歷史記錄條目之間導航時纔會觸發該事件。
進出口尋找替代onpopstate
具有相同的功能爲window.onhashchange
(https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange)當URL改變,將觸發事件。
您想分享您的解決方案嗎?
非常感謝你在這裏拜訪過的@凱爾辛普森先生。 我不會使用外部庫來做簡單的事情。 但你是真實的,應該破解我自己的解決方案。我創建了自己的pushState版本。然後,創建將由'onpopstate'和我自己的pushState調用的Router函數 – plainjavascript