window.location.href更改时的事件
我正在为某个网站编写Greasemonkey脚本,该脚本有时会进行修改location.href" title="location.href">location.href
。
在页面上进行更改时,如何获取事件(通过window.addEventListener
或类似方式)window.location.href
?我还需要访问指向新的/修改的URL的文档的DOM。
我看到了其他涉及超时和轮询的解决方案,但如果可能的话,我想避免这种情况。
回答:
popstate事件:
当活动历史记录条目更改时,将触发popstate事件。[…]popstate事件仅通过执行浏览器操作(例如单击“后退”按钮(或在JavaScript中调用history.back()))来触发
因此,在使用时侦听popstate
事件并发送popstate
事件history.pushState()
应该足以对href
更改采取措施:
window.addEventListener('popstate', listener);const pushUrl = (href) => {
history.pushState({}, '', href);
window.dispatchEvent(new Event('popstate'));
};
以上是 window.location.href更改时的事件 的全部内容, 来源链接: utcz.com/qa/432434.html