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