浏览器返回事件popstate

慢慢地,满满的~ / 2023-06-02 / 原文

popstate事件, 浏览器返回事件:窗口的历史记录发生变化时会发生该事件

PopStateEvent

window.addEventListener('popstate', backChange, false)
window.removeEventListener('popstate', backChange, false)
function backChange (e) {
  console.log('联系ta页面监听到返回了', e)
},

当活动历史记录条目更改时,将触发popstate事件。如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。

需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())

不同的浏览器在加载页面时处理popstate事件的形式存在差异。页面加载时Chrome和Safari通常会触发(emit )popstate事件,但Firefox则不会。

参考链接:

  • https://blog.csdn.net/qq_39871330/article/details/79745578
  • https://blog.csdn.net/weixin_42062766/article/details/119726251
  • https://www.lmlphp.com/user/16839/article/item/481650/