Maison  >  Article  >  interface Web  >  Comment détecter et répondre aux modifications d'URL en JavaScript ?

Comment détecter et répondre aux modifications d'URL en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 18:10:30296parcourir

How to Detect and Respond to URL Changes in JavaScript?

Comment déclencher un événement lorsque l'URL change

Lors du développement de scripts Greasemonkey pour des sites Web qui modifient périodiquement le window.location.href, il est il est souvent nécessaire d'effectuer des actions spécifiques en réponse à ces modifications d'URL. Cependant, utiliser des interrogations ou des délais d'attente comme solutions potentielles peut s'avérer inefficace.

Pour éviter de tels problèmes, nous présentons une méthode très efficace qui utilise l'API MutationObserver. En surveillant les modifications au sein de l'élément body, ce script peut détecter efficacement les modifications d'URL et donner accès au DOM du document modifié :

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);
};

Alternativement, si vous préférez une approche plus concise et moderne, vous pouvez utiliser ce qui suit script, qui exploite la dernière spécification 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;

Cette méthode vous permet d'attacher la fonctionnalité souhaitée à l'événement déclenché lorsque l'URL change, donnant accès au DOM du document modifié.

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