2

我正在尝试为 facebook 创建一个 Chrome 插件,并且我正在使用 onpopstate 事件来检查用户何时进入另一个页面。唯一的问题是 onpopstate 不会触发。

这是我正在使用的(简单)代码:

window.onpopstate = function() { console.log('pop'); };

这是问题的屏幕:

控制台中的代码测试

如您所见,调用了 pushState 代码,但未调用 onpopstate 侦听器。

你知道这里发生了什么吗?

4

1 回答 1

0

@enhzflep 的答案在上面的评论中,并不是很明显。来自MDN

调用 history.pushState() 或 history.replaceState() 不会触发 popstate 事件。popstate 事件仅通过执行浏览器操作触发,例如在同一文档的两个历史条目之间导航时单击后退按钮(或在 JavaScript 中调用 history.back())。

换句话说,在这种情况下不应触发 onpopstate 事件。

于 2019-10-10T00:15:19.107 回答