我正在尝试为Facebook创建一个chrome插件,并且正在使用onpopstate事件来检查用户何时进入另一个页面。唯一的问题是onpopstate不会触发。
这是我正在使用的(简单)代码:
window.onpopstate = function() { console.log('pop'); };
这是问题的屏幕:
您可以看到调用了pushState代码,但没有调用onpopstate侦听器。
你知道这里发生了什么吗?
@@ enhzflep的回答在上面的评论中,并不立即显而易见。从MDN:
调用history.pushState()或history.replaceState()不会触发popstate事件。当在同一文档的两个历史记录条目之间导航时,仅通过执行浏览器操作(例如单击“后退”按钮(或在JavaScript中调用history.back()))才能触发popstate事件。
换句话说,在这种情况下,不应触发onpopstate事件。