Comment exécuter du code lorsque l'URL d'une page change
Dans le contexte des scripts Greasemonkey, il devient nécessaire de répondre aux modifications apportées à l'URL d'une page. URL (location.href) efficacement. Pour y parvenir sans introduire de délais d'attente ou d'interrogation, envisagez d'utiliser l'API MutationObserver.
Solution utilisant MutationObserver
Initialisez l'ancienne URL :
<code class="js">var oldHref = document.location.href;</code>
Attacher un MutationObserver à l'élément 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>
Dernière spécification JavaScript
Pour les navigateurs modernes prenant en charge la dernière spécification JavaScript, utilisez la syntaxe simplifiée suivante :
<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>
En utilisant MutationObserver, vous pouvez capturer efficacement les modifications d'URL et déclencher l'exécution de code personnalisé sans recourir à des techniques d'interrogation peu fiables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!