首页 >web前端 >js教程 >Greasemonkey中如何使用MutationObserver在页面URL发生变化时执行代码?

Greasemonkey中如何使用MutationObserver在页面URL发生变化时执行代码?

DDD
DDD原创
2024-10-29 03:59:29403浏览

How to Execute Code When the Page's URL Changes with MutationObserver in Greasemonkey?

页面 URL 更改时如何执行代码

在 Greasemonkey 脚本编写的上下文中,有必要响应页面 URL 的更改高效的 URL (location.href)。要在不引入超时或轮询的情况下实现此目的,请考虑利用 MutationObserver API。

使用 MutationObserver 的解决方案

  1. 初始化旧 URL:

    <code class="js">var oldHref = document.location.href;</code>
  2. 将 MutationObserver 附加到 body 元素:

    <code class="js">window.onload = function() {
        var bodyList = document.querySelector('body');
    
        var observer = new MutationObserver(function(mutations) {
            if (oldHref != document.location.href) {
                oldHref = document.location.href;
                /* Execute your code here */
            }
        });
    
        var config = {
            childList: true,
            subtree: true
        };
    
        observer.observe(bodyList, config);
    };</code>

最新 JavaScript 规范

对于支持最新 JavaScript 规范的现代浏览器,请使用以下简化语法:

<code class="js">const observeUrlChange = () => {
  let oldHref = document.location.href;
  const body = document.querySelector('body');
  const observer = new MutationObserver(mutations => {
    if (oldHref !== document.location.href) {
      oldHref = document.location.href;
      /* Execute your code here */
    }
  });
  observer.observe(body, { childList: true, subtree: true });
};

window.onload = observeUrlChange;</code>

通过利用 MutationObserver,您可以有效捕获 URL 更改并触发自定义代码执行,而无需诉诸不可靠的轮询技术。

以上是Greasemonkey中如何使用MutationObserver在页面URL发生变化时执行代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn