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

回到顶部