Questions tagged «mutation-observers»


8
将元素添加到页面时如何通知我?
我希望我选择的功能在将DOM元素添加到页面时运行。这是在浏览器扩展的上下文中,因此该网页独立于我运行,并且我无法修改其来源。我在这里有什么选择? 我想,从理论上讲,我可以setInterval()用来不断搜索元素的存在并在元素存在的情况下执行我的操作,但是我需要一个更好的方法。

1
MutationObserver在整个DOM中检测节点的性能
我对MutationObserver用于检测某个HTML元素是否添加到HTML页面中的任何位置感兴趣。例如,我要说的是,我想检测是否<li>在DOM中的任何位置添加了。 MutationObserver到目前为止,我所看到的所有示例仅检测是否将节点添加到特定容器中。例如: 一些HTML <body> ... <ul id='my-list'></ul> ... </body> MutationObserver 定义 var container = document.querySelector('ul#my-list'); var observer = new MutationObserver(function(mutations){ // Do something here }); observer.observe(container, { childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true }); 因此,在此示例中,MutationObserver安装程序将监视非常特定的容器(ul#my-list),以查看是否将任何<li>附加到该容器。 如果我不想那么具体,并<li>在整个HTML正文中关注,是否会出现这样的问题: var container = document.querySelector('body'); 我知道它可以在我为自己设置的基本示例中起作用...但是不建议这样做吗?这会导致性能下降吗?如果是这样,我将如何检测和衡量该性能问题? 我认为也许有一个原因,所有MutationObserver示例都针对其目标容器如此具体...但是我不确定。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.