Maison  >  Article  >  interface Web  >  Comment détecter l’ajout d’éléments DOM dans les extensions de navigateur malgré la dépréciation des événements de mutation ?

Comment détecter l’ajout d’éléments DOM dans les extensions de navigateur malgré la dépréciation des événements de mutation ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 08:47:02704parcourir

How Can You Detect DOM Element Addition in Browser Extensions Despite the Deprecation of Mutation Events?

Observation de l'ajout d'éléments DOM dans les extensions de navigateur

Les environnements de navigateur modernes déconseillent l'utilisation d'événements de mutation, ce qui rend difficile la détection de nouveaux éléments. ajouté au DOM dans les scénarios d’extension de navigateur. Pour résoudre ce problème, une approche alternative consiste à recourir à une surveillance continue via la fonction setInterval().

Surveillance avec setInterval()

L'exemple de code suivant montre comment pour implémenter une surveillance continue à l'aide de setInterval() :

<code class="javascript">function checkDOMChange() {
  // Check for any new elements being inserted or modifications.

  // Schedule the next iteration in 100 milliseconds.
  setTimeout(checkDOMChange, 100);
}</code>

Cette fonction lance une boucle dans laquelle elle vérifie les modifications du DOM et planifie l'itération suivante toutes les 100 millisecondes. L'intervalle de 1/10ème de seconde devrait suffire pour la plupart des besoins d'observation en temps non réel.

Considérations supplémentaires

Bien que l'approche setInterval() fournisse une solution viable , il est important de considérer son impact potentiel sur les performances. Une interrogation constante du DOM peut consommer des ressources CPU importantes, entraînant le mécontentement des utilisateurs. Par conséquent, il est crucial d’adapter la fréquence de surveillance aux exigences spécifiques de votre extension.

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