Heim > Fragen und Antworten > Hauptteil
Ich baue eine Chrome-Erweiterung und möchte einige Elemente an diese Telegrammseite anhängen. Es scheint, dass nur der Text erfolgreich angehängt wurde und nicht der gesamte HTML-Code.
const span = document.createElement("span"); span.innerHTML = '<span class="xxx">Foo,bar</span>'; const p = document.querySelector("p"); p.appendChild(span);
P粉2310799762024-03-20 13:26:15
正如评论中所建议的那样,我验证了自己,实际上有一个 MutationObserver
当某些代码试图在文档树中的某个点改变某些内容时,它会实时更改 dom。
因为没有标准方法来查找在 dom 上监听的实时 MutationObservers 实例(如果有的话),除非您可以努力查找保存该对象的变量在哪个范围内;最快的方法是用它的克隆替换 body 元素,所有 MutationObserver 都会消失。
document.body = document.body.cloneNode(true);
完成此操作后,当您尝试将元素附加到 dom 时,它将按预期进行相应更改,而不会受到干扰。
在寻找如何获取实时 MutationObserver 实例或解决该需求的工作方法是什么时,在 Stack Overflow 答案中找到了最后的线索?
是有没有办法从项目中删除所有的mutationObservers而不引用它?