如何将DOMNodeInserted事件代码替换为MutationObserver并确定target参数
MutationObserver target参数取值解答
首先明确:MutationObserver.observe()的target参数必须是原生DOM节点对象,所以你的三个选项里正确的是第一种:直接使用document。
原因如下:
$(document)是jQuery封装后的对象,并非原生DOM Node类型,直接传给observe方法会触发类型错误document是原生的文档节点对象,完全满足MutationObserver对target参数的类型要求
替换后的示例代码如下:
// 创建MutationObserver实例 const observer = new MutationObserver(InspectPage.OnNodeInserted); // 配置观察选项(匹配原DOMNodeInserted事件的监听逻辑) const config = { childList: true, subtree: true }; // 传入原生document作为target开始观察 observer.observe(document, config);
补充说明:如果是其他jQuery选择器获取的对象(比如$('#some-element')),要提取原生DOM节点可以使用$('#some-element')[0]或$('#some-element').get(0);但针对$(document)场景,直接使用原生document是最直接高效的方式。
内容的提问来源于stack exchange,提问作者Benilda Key
相关产品推荐
相关产品推荐

