MutationObserver ne fonctionne pas correctement sur localhost
P粉894008490
2023-08-31 21:38:41
<p><strong>TL;DR : Pour une raison quelconque, MutationObserver ne se déclenche pas du tout sur ma page. Le même extrait de console fonctionne sur d'autres pages, mais pas lorsqu'il est exécuté sur mon hôte local. </strong></p>
<heure />
<p>Je travaille sur un SPA React standard construit avec Webpack et fonctionnant sur localhost. </p>
<p>En ce moment, j'essaie d'utiliser https://github.com/KingSora/OverlayScrollbars sur ma page et ils fonctionnent pour la plupart bien, ils ne semblent tout simplement pas être capables de détecter automatiquement les changements de contenu.
Avec un peu de débogage, j'ai remarqué que le MutationObserver utilisé en interne ne se déclenche pas du tout. </p>
<p>Ensuite, j'ai commencé à enquêter plus en profondeur et j'ai utilisé cet extrait de code sur ma page : </p>
<pre class="brush:js;toolbar:false;">let obs = new MutationObserver(changes => console.log('changes:', changes));
obs.observer ($0, {
attributs : vrai,
attributOldValue : vrai,
sous-arbre : vrai,
childList : vrai,
caractèreDonnées : vrai,
});
≪/pré>
<p>Cependant, quelle que soit la manière dont je modifie le nœud ($0) ou tout autre nœud enfant, l'observateur ne se déclenche pas. </p><p>
<strong>Cependant, vous pouvez parfaitement utiliser le même extrait de code sur d’autres pages ! </strong></p>
<p>Maintenant, je n'ai absolument aucune idée de comment cela s'est produit, donc toute aide ou simplement des idées seraient grandement appréciées ! </p>
D'accord, il s'agit d'un cas classique de "avez-vous essayé de redémarrer votre ordinateur" - ou dans ce cas, Chrome.
Ce même extrait de code a commencé à fonctionner dès que j'ai redémarré Chrome (il ne suffisait pas d'ouvrir un nouvel onglet - j'ai dû redémarrer complètement Chrome).
Je suppose donc qu'un problème dans Chrome a provoqué un bug et cassé l'observateur sur ma page, j'espère donc que cela continuera à fonctionner correctement maintenant :-/