我有兴趣MutationObserver
用于检测某个 HTML 元素是否添加到 HTML 页面中的任何位置。例如,我会说我想检测是否<li>
在 DOM 中的任何位置添加了any 。
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
is 设置为观察一个非常确定的容器 ( ul#my-list
) 以查看是否有任何<li>
's 附加到它。
如果我想不那么具体,并<li>
像这样在整个 HTML 正文中观察's是否有问题:
var container = document.querySelector('body');
我知道它适用于我为自己设置的基本示例......但是不建议这样做吗?这会导致性能不佳吗?如果是这样,我将如何检测和衡量该性能问题?
我想可能有一个原因,所有MutationObserver
示例都针对其目标容器如此具体……但我不确定。