如何转换以下代码行以改用 MutationObserver?

How to convert the following line of code to use a MutationObserver instead?

提问人:Benilda Key 提问时间:9/1/2023 更新时间:9/1/2023 访问量:26

问:

这个问题与问题有关 $ 在 jQuery 的上下文中是什么意思?我最近问过。

我之所以问这个问题,是因为人们只是将我的原始问题标记为重复,而没有提供问题中最重要的部分的答案。

我有以下代码行。

$(document).on('DOMNodeInserted', InspectPage.OnNodeInserted);

由于已弃用,我需要将其替换为 .DOMNodeInsertedMutationObserver

人们很有帮助地指出,$ 是 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)
  • 我没有考虑过的其他事情。
javascript jquery google-chrome-extension mutation-observers

评论

0赞 Mike 'Pomax' Kamermans 9/1/2023
它被关闭的原因是因为答案在其他地方很容易找到,也就是说,它只是全局的一个方便的别名,在任何上下文中,另一个东西还没有采用 100% 有效的 JS 变量名称。如果你的帖子有其他问题,那么你就知道这不是帖子的工作方式,这些帖子应该从一开始就分开发布。至于你要找的突变观察者模式,MDN 有一个完美的例子来帮助你入门jQuery$
1赞 Heretic Monkey 9/1/2023
好吧,您可以查看文档的页面,看到它是一个 ,所以大概它会起作用。如果你愿意,你也可以使用,这是 DOM 的下一个级别。您不能使用,因为那是 jQuery 对象,而不是 .Nodedocument.documentElement$(document)Node

答: 暂无答案