关于popstate,documentation说明了这一点:
请注意,只需调用history.pushState()或history.replaceState() 不会触发popstate事件。仅触发popstate事件 通过执行浏览器操作,例如单击后退按钮(或 在JavaScript中调用history.back()。
例如,在youtube上,如果您导航到另一个视频,则会更改网址,但如何检测到该更改,因为它不是由浏览器操作触发的?
我想在内容脚本中执行此操作,但如果不可能,我可以在后台执行此操作。
PS:Youtube只是最简单的例子,因此youtube特定的解决方案或依赖于youtube维护html中某些id的解决方案并不是我想要的。答案 0 :(得分:0)
您可以使用webNavigation
API并在后台收听onHistoryStateUpdated
事件。
e.g:
chrome.webNavigation.onHistoryStateUpdated.addListener(function () {
// do something here
})