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