最佳答案
我感兴趣的是使用 MutationObserver
来检测某个 HTML 元素是否添加到 HTML 页面的任何位置。例如,我想说我想检测是否在 DOM 中的任何地方添加了任何 <li>
。
到目前为止,我看到的所有 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>
附加到它。
如果我想成为 没那么具体,并在整个 HTML 主体上观察 <li>
,这是一个问题吗:
var container = document.querySelector('body');
我知道它在我为自己设置的基本示例中起作用... ... 但是难道不建议这样做吗?这会导致性能下降吗?如果是这样,我将如何检测和度量性能问题?
我想也许有一个原因,所有的 MutationObserver
例子是如此具体与他们的目标容器... 但我不确定。