为什么
window.addEventListener('popstate', () => alert('pop'));
window.history.pushState(null, '', '/foo');
为什么我的 pushState
没有触发 popstate
事件?
NB: 在最新的 Chrome 浏览器上测试
--
根据 MDN 的说法:
每次活动历史记录条目更改时,都会向窗口发送 popstate 事件。如果要激活的历史记录条目是通过调用 pushState 或受 replaceState 调用影响而创建的,则 popstate 事件的 state 属性包含历史记录条目状态对象的副本。
addEventListener('popstate', event)
。 - Binyamin