Maison  >  Article  >  interface Web  >  Comment capturer efficacement les modifications d'URL dans les scripts Greasemonkey à l'aide de MutationObservers ?

Comment capturer efficacement les modifications d'URL dans les scripts Greasemonkey à l'aide de MutationObservers ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 19:52:03227parcourir

How to Efficiently Capture URL Changes in Greasemonkey Scripts Using MutationObservers?

Capture des modifications d'URL dans les scripts Greasemonkey

Dans un script Greasemonkey, la surveillance des modifications d'URL à l'aide d'événements est souvent nécessaire. Toutefois, les méthodes d’interrogation ou de délai d’attente peuvent ne pas être idéales. Voici une solution qui utilise MutationObservers pour détecter et gérer les modifications d'URL de manière transparente.

Pour mettre en œuvre cette approche, suivez ces étapes :

  1. Initialisez les variables de référence DOM :

    • Initialisez une variable pour contenir l'URL d'origine : var oldHref = document.location.href;
    • Sélectionnez l'élément body pour la surveillance de MutationObserver : var bodyList = document.querySelector( 'body');
  2. Créer un MutationObserver :

    • Instancier un MutationObserver avec une fonction de rappel qui se déclenche lorsque le Modifications d'URL : var observer = new MutationObserver(function(mutations) { ... });
  3. Configurer les options de MutationObserver :

    • Configurez l'observateur pour surveiller les modifications des enfants et des sous-arbres : var config = { childList : true, subtree : true };
  4. Ajouter un observateur au DOM :

    • Commencez à observer l'élément body pour détecter les modifications : observer.observe(bodyList, config);
  5. Gérer l'URL Modifications du rappel :

    • Dans le rappel de l'observateur, vérifiez les modifications d'URL et effectuez les actions nécessaires : if (oldHref != document.location.href) { ... }

Cette solution exploite MutationObservers, qui fournit un moyen efficace de surveiller les modifications du DOM, y compris celles résultant de modifications d'URL. Il évite les méthodes d'interrogation ou de délai d'attente, garantissant une détection en temps réel des modifications d'URL et un accès au DOM du document pointant vers l'URL modifiée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn