Maison > interface Web > js tutoriel > Une petite plongée en profondeur sur MutationObservers

Une petite plongée en profondeur sur MutationObservers

Susan Sarandon
Libérer: 2024-12-17 02:20:24
original
915 Les gens l'ont consulté

A small deep dive on MutationObservers

Lorsque Google a supprimé l'onglet Maps dédié des résultats de recherche, j'ai décidé de prendre les choses en main en créant une extension Chrome qui restaure cette fonctionnalité bien-aimée. Parfois, les meilleures solutions peuvent venir de la résolution de vos propres problèmes !

L'extension témoigne de la puissance des technologies Web et de la manière dont les développeurs peuvent s'adapter rapidement aux changements dans l'expérience utilisateur. Grâce à l'architecture d'extensions de Chrome - en particulier les scripts de contenu - nous pouvons modifier dynamiquement les pages Web pour répondre aux besoins des utilisateurs.

Une partie intéressante de cette extension est l'utilisation d'un MutationObserver. MutationObserver est une API puissante qui nous permet de surveiller les changements du DOM en temps réel !

const observer = new MutationObserver((mutations, obs) => {
    const tabsContainer = document.querySelector('div[role="navigation"] div[role="list"]');
    if (tabsContainer) {
        createMapsTab(); 
        obs.disconnect(); 
        makeImageClickable(); 
    }
});

observer.observe(document.body, {
    childList: true,
    subtree: true
});
Copier après la connexion

Que se passe-t-il ici ?

  1. MutationObserver surveille les changements dans le DOM
  2. Nous recherchons spécifiquement le conteneur des onglets de navigation
  3. Une fois trouvé, nous créons notre onglet "Cartes" personnalisé
  4. obs.disconnect() arrête d'observer pour éviter un traitement inutile
  5. Cette approche garantit que nous injectons notre onglet de manière dynamique, quelle que soit la façon dont la page se charge

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal