Heim  >  Artikel  >  Web-Frontend  >  Wie erkennt man Änderungen in „location.href“ mithilfe von MutationObserver in Greasemonkey-Skripten?

Wie erkennt man Änderungen in „location.href“ mithilfe von MutationObserver in Greasemonkey-Skripten?

DDD
DDDOriginal
2024-10-27 20:30:30312Durchsuche

How to Detect Changes in `location.href` Using MutationObserver in Greasemonkey Scripts?

Auf geänderte Location.href-Ereignisse achten

Beim Schreiben von Greasemonkey-Skripten müssen Sie manchmal bestimmte Vorgänge ausführen, wenn die Website location.href ändert . In diesem Artikel wird eine Möglichkeit beschrieben, auf diese Änderung mithilfe von DOM-Mutationsbeobachtern anstelle zeitaufwändiger Zeitüberschreitungen und Abfragen zu reagieren.

Lösung

<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;
            // 执行相关的操作
        }
    });
    
    var config = {
        childList: true,
        subtree: true
    };
    
    observer.observe(bodyList, config);
};</code>

Dieses Skript verwendet einen DOM-Mutationsbeobachter, um im gesamten Dokument auf Änderungen zu achten, einschließlich Änderungen im Textelement. Wenn eine Änderung von location.href erkannt wird, wird die Beobachter-Rückruffunktion ausgelöst, mit der Sie beliebige Aktionen ausführen können.

Mit den neuesten JavaScript-Spezifikationen

<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;
      // 执行相关的操作
    }
  });
  observer.observe(body, { childList: true, subtree: true });
};

window.onload = observeUrlChange;</code>

Dieses Skript verwendet die neuesten JavaScript-Spezifikationen mit ES6-Pfeilfunktionen und der Beobachtungsmethode. Es entspricht dem obigen Skript und bietet eine sauberere Möglichkeit, auf Änderungen an location.href zu warten.

Das obige ist der detaillierte Inhalt vonWie erkennt man Änderungen in „location.href“ mithilfe von MutationObserver in Greasemonkey-Skripten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn