在Chrome扩展程序的Facebook中使用onpopstate

问题描述 投票:2回答:1

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

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

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

这是问题的屏幕:

“在控制台中进行代码测试”

您可以看到调用了pushState代码,但没有调用onpopstate侦听器。

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

javascript facebook javascript-events browser-history
1个回答
0
投票

@@ enhzflep的回答在上面的评论中,并不立即显而易见。从MDN

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

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

© www.soinside.com 2019 - 2024. All rights reserved.