MutationObserver がローカルホスト上で正しく動作しない
P粉894008490
2023-08-31 21:38:41
<p><strong>TL;DR: 何らかの理由で、私のページでは MutationObserver がまったく起動しません。同じコンソール スニペットは他のページでは機能しますが、ローカルホストで実行すると機能しません。 </strong></p>
<p>私は、webpack で構築され、localhost 上で実行される標準的な React SPA に取り組んでいます。 </p>
<p>現在、自分のページで https://github.com/KingSora/OverlayScrollbars を使用しようとしていますが、ほとんど正常に動作しますが、コンテンツの変更を自動的に検出できないようです。
いくつかのデバッグを行った結果、内部で使用されている MutationObserver がまったく起動しないことに気付きました。 </p>
<p>その後、さらに調査を開始し、ページで次のコード スニペットを使用しました。
<pre class="brush:js;toolbar:false;">let obs = new MutationObserver(changes => console.log('changes:',changes));
obs.observe($0, {
属性: true、
属性古い値: true、
サブツリー: true、
childList: true、
文字データ: true、
});
</pre>
<p>しかし、ノード ($0) やその他の子ノードをどのように変更しても、オブザーバーは起動しません。 </p><p>
<strong>ただし、同じコード スニペットを他のページで使用することはまったく問題ありません。 </strong></p>
<p>これがどのようにして起こったのかまったくわかりません。そのため、助けやアイデアだけでもいただければ幸いです。 </p>
さて、これは「コンピュータを再起動してみましたか?」という典型的なケースです。この場合は Chrome です。
これと同じコード スニペットは、Chrome を再起動するとすぐに機能し始めました (新しいタブを開くだけでは十分ではなく、Chrome を完全に再起動する必要がありました)。
つまり、Chrome の問題がバグを引き起こし、私のページのオブザーバーを壊したのだと思います。そのため、今後も正常に動作することを願っています :-/