首页 > web前端 > js教程 > 正文

如何在 JavaScript 中检测并响应 URL 变化?

Linda Hamilton
发布: 2024-10-28 18:10:30
原创
295 人浏览过

How to Detect and Respond to URL Changes in JavaScript?

如何在 URL 更改时触发事件

为定期修改 window.location.href 的网站开发 Greasemonkey 脚本时,通常需要执行特定操作来响应这些 URL 更改。然而,利用轮询或超时作为潜在的解决方案可能效率低下。

为了避免此类问题,我们提出了一种利用 MutationObserver API 的高效方法。通过监视 body 元素内的更改,此脚本可以有效地检测 URL 修改并提供对修改后文档的 DOM 的访问:

var oldHref = document.location.href;

window.onload = function() {
    var bodyList = document.querySelector('body');

    var observer = new MutationObserver(function(mutations) {
        if (oldHref != document.location.href) {
            oldHref = document.location.href;
            /* Insert your code here */
        }
    });
    
    var config = {
        childList: true,
        subtree: true
    };
    
    observer.observe(bodyList, config);
};
登录后复制

或者,如果您喜欢更简洁和现代的方法,您可以使用以下脚本,它利用最新的 JavaScript 规范:

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;
      /* Insert your code here */
    }
  });
  observer.observe(body, { childList: true, subtree: true });
};

window.onload = observeUrlChange;
登录后复制

此方法允许您将所需的功能附加到 URL 更改时触发的事件,从而提供对修改后文档的 DOM 的访问。

以上是如何在 JavaScript 中检测并响应 URL 变化?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!