提问人:Benilda Key 提问时间:9/1/2023 更新时间:9/1/2023 访问量:26
如何转换以下代码行以改用 MutationObserver?
How to convert the following line of code to use a MutationObserver instead?
问:
这个问题与问题有关 $
在 jQuery 的上下文中是什么意思?我最近问过。
我之所以问这个问题,是因为人们只是将我的原始问题标记为重复,而没有提供问题中最重要的部分的答案。
我有以下代码行。
$(document).on('DOMNodeInserted', InspectPage.OnNodeInserted);
由于已弃用,我需要将其替换为 .DOMNodeInserted
MutationObserver
人们很有帮助地指出,$ 是 jQuery 方法的别名。但是,这并不能回答我最初的问题。
将从 Chrome 中删除的 Mutation 事件页面包含以下代码块。
// Replacement mutation observer code:
const observer = new MutationObserver(mutationList =>
mutationList.filter(m => m.type === 'childList').forEach(m => {
m.addedNodes.forEach(doSomething);
}));
observer.observe(target,{childList: true, subtree: true});
我从阅读 MutationObserver: observe() 方法的文档中知道,在这种情况下目标是 DOM 节点。
我从阅读 jQuery() 页面中知道,该方法返回“基于传递的参数在 DOM 中找到的匹配元素的集合,或者通过传递 HTML 字符串创建的元素”。
不幸的是,这还不够,因为它没有告诉我如何从中获取 MutationObserver: observe() 方法的参数。target
$(document)
所以,希望这次我的问题能得到真正的回答 我更准确地说我想知道什么。
在我的情况下,我应该为 MutationObserver: observe() 方法的参数使用什么值?target
我想到了三种可能性。
- 我想多了,我只需要使用.
document
- 我需要使用 .
$(document)
- 我没有考虑过的其他事情。
答: 暂无答案
上一个:脚本标记中断模板标记的突变观察器
评论
jQuery
$
文档
的页面,看到它是一个 ,所以大概它会起作用。如果你愿意,你也可以使用,这是 DOM 的下一个级别。您不能使用,因为那是 jQuery 对象,而不是 .Node
document.documentElement
$(document)
Node