MutationObserver无法在本地主机上正常运行
P粉894008490
2023-08-31 21:38:41
<p><strong>TL;DR:由于某种原因,MutationObserver在我的页面上根本不触发。相同的控制台代码片段在其他页面上有效,但在我的本地主机上运行时却无效。</strong></p>
<hr />
<p>我正在一个使用webpack构建的标准react SPA上工作,它在本地主机上运行。</p>
<p>现在我正在尝试在我的页面上使用https://github.com/KingSora/OverlayScrollbars,它们大部分工作正常,只是似乎无法自动检测内容更改。
通过一些调试,我注意到内部使用的MutationObserver根本不触发。</p>
<p>然后我开始进一步调查,并在我的页面上使用了这个代码片段:</p>
<pre class="brush:js;toolbar:false;">let obs = new MutationObserver(changes => console.log('changes:', changes));
obs.observe($0, {
attributes: true,
attributeOldValue: true,
subtree: true,
childList: true,
characterData: true,
});
</pre>
<p>然而,无论我如何修改节点($0)或任何其他子节点,观察者都不会触发。</p><p>
<strong>然而,在其他页面上使用相同的代码片段完全正常!</strong></p>
<p>现在我完全不知道这是怎么发生的,所以任何帮助或者只是想法都将不胜感激!</p>
好吧,这是一个典型的案例,“你试过重新启动你的电脑吗” - 或者在这种情况下是Chrome。
一旦我重新启动了Chrome,这个相同的代码片段就开始工作了(只是打开一个新的标签页是不够的 - 我必须完全重新启动Chrome)。
所以我猜测Chrome中的一些问题导致了一个bug,并破坏了我页面上的观察者,所以我希望它现在会继续正常工作 :-/