如何检测没有't触发操作状态
How to detect a pushState / replaceState that doesn't trigger onpopstate
关于popstate,文档中这样写道:
请注意,仅调用history.pushState()或history.replaceState()不会触发popstate事件。popstate事件仅被触发通过执行浏览器操作,例如单击后退按钮(或在JavaScript中调用history.back())。
例如,在youtube上,如果你导航到另一个视频,url会发生变化,但我如何检测到这种变化,因为它不是由浏览器操作触发的?
我想在内容脚本上做这件事,但如果不可能,我可以在后台做。
附言:Youtube只是这方面最简单的例子,所以Youtube特定的解决方案,或者依赖于Youtube在html中维护某些id的解决方案不是我想要的。
您可以使用webNavigation
API并在后台监听onHistoryStateUpdated
事件。
例如:
chrome.webNavigation.onHistoryStateUpdated.addListener(function () {
// do something here
})
相关文章:
- 在Redux中链接async和sync操作以计算初始状态
- AngularJS-检测到n分钟内没有任何操作并进入默认状态
- 在 React JS 中,什么时候应该使用存储而不是直接操作视图的状态
- 如何根据各种复选框状态执行操作
- React/Redux 状态在第二次操作调用时为空
- 状态更改时会不必要地触发Redux操作
- 如何在程序或网站处于活动状态时禁用剪贴板和任务切换操作
- 如何在不使用主题或命令式操作的情况下管理状态 在一个简单的 RxJS 示例中
- 如何在 AngularJS 中同时处理 DOM 操作和状态更改
- 如何捕获页面上的所有请求和响应,并根据每个响应状态的需要执行操作
- 具有新状态的 Redux 调度操作和化简器
- 从一种特定状态转换到另一种特定状态时执行操作
- FAB 操作是否可以在点击后保持打开状态
- jQuery在Bootstrap切换按钮类处于活动状态时执行某些操作
- 如何检测没有't触发操作状态
- AngularJS捕获$http操作的所有状态代码
- 如何确保链接'的默认操作始终处于禁用状态
- 在Rails中,如何在视图中显示控制器操作成功或失败的JSON状态消息
- 在redux状态改变后处理不纯的DOM操作
- Redux-对复杂图形的状态进行建模,并触发多个更新和副作用以响应单个操作