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!