mutation-observers相关内容

变异观察者-子树

我正在阅读http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,似乎Chrome的行为与规范相反。如果我正确理解了规范,为元素定义“子树”意味着应该报告对该元素的子树(包括元素本身)的更改。但是,在执行这段代码时,我什么也得不到。 var observer = new WebKitMutationObs ..
发布时间:2022-04-14 22:21:29 其他开发

要设置MutationWatch,如何使用Selenium在页面加载之前注入javascript

我正在尝试设置MutationWatch以在加载时观察页面突变。 为此,应在加载页面之前配置MutationViewer。 使用Selenium-chromeDriver,找不到为此目的注入JS的方法。 我知道Chrome扩展可以做到这一点,但扩展不能在无头模式下工作。 这就是问题所在。 推荐答案 我们现在可以使用execute_cdp_cmd(cmd, cmd ..
发布时间:2022-02-24 10:57:34 其他开发

当元素添加到页面时如何通知我?

我希望在将 DOM 元素添加到页面时运行我选择的函数.这是在浏览器扩展的上下文中,因此网页独立于我运行,我无法修改其源代码.我在这里有什么选择? 我想,理论上,我可以只使用 setInterval() 来不断搜索元素的存在并在元素存在时执行我的操作,但我需要更好的方法. 解决方案 警告! 这个答案现在已经过时了.DOM Level 4 引入了 MutationObserve ..

“MutationObserver"上的“观察":参数 1 不是“节点"类型

我正在创建一个 Chrome 扩展程序并尝试在 gMail 撰写框的发送按钮旁边添加一个小文本. 我正在使用 MutationObserver 来了解撰写框窗口何时出现.我是通过观察一个带有 no 类的元素来做到这一点的,因为 compose box 元素是作为这个元素的子元素创建的(class no). 当用户单击撰写按钮并出现撰写框窗口时,我会使用 .after() 方法在 SEN ..

检测/监控 DOM 变化的最有效方法?

我需要一种有效的机制来检测 DOM 的变化.最好是跨浏览器,但如果有任何不是跨浏览器的有效方法,我可以使用一种故障安全的跨浏览器方法来实现这些. 特别是,我需要检测会影响页面上文本的更改,因此需要任何新的、删除的或修改的元素,或者对内部文本 (innerHTML) 的更改. 我无法控制所做的更改(它们可能是由于 3rd 方 javascript 包含等造成的),因此无法从这个角度进行处 ..
发布时间:2021-12-18 13:27:19 前端开发

当一个元素被添加到页面时,我如何得到通知?

我希望在将 DOM 元素添加到页面时运行我选择的函数.这是在浏览器扩展的上下文中,因此网页独立于我运行,我无法修改其源.我在这里有哪些选择? 我想,理论上,我可以只使用 setInterval() 来持续搜索元素的存在并在元素存在时执行我的操作,但我需要一个更好的方法.> 解决方案 警告! 这个答案现在已经过时了.DOM Level 4 引入了 MutationObserver ..

检测 DOM 中的变化

我想在将某些 div 或输入添加到 html 时执行一个函数.这可能吗? 比如添加了一个文本输入,那么应该调用该函数. 解决方案 2015 更新,新的 MutationObserver 被现代浏览器支持: Chrome 18+、Firefox 14+、IE 11+、Safari 6+ 如果您需要支持较旧的方法,您可以尝试使用其他方法,例如下面这个 5 (!) 岁的答案中提 ..
发布时间:2021-11-30 22:25:26 前端开发

绕过现有的 MutationObserver 使用 Tampermonkey 插入 DOM 元素

我编写了一个 Tampermonkey 脚本,将一些 DOM 元素注入到我用于工作的站点中,从而使导航更容易.它不再有效,因为供应商引入了 MutationObserver 大概是为了阻止像我这样的人这样做.为什么,我不知道.我没有做任何邪恶的事情. 我知道这就是正在发生的事情,因为我可以看到我的 DOM 元素短暂地出现然后消失.它们不再在 DOM 树中,站点的 JS 包含 Mutation ..
发布时间:2021-09-04 19:27:27 前端开发

对 MutationObserver 感到困惑

所以我一直在思考如何使用 MutationObserver,但我没有取得任何进展.我已经在 W3C 站点和 MDN 上阅读过它.在 MDN 中阅读时,在示例之前一切都有意义. //选择目标节点var target = document.querySelector('#some-id');//创建一个观察者实例var 观察者 = 新的 MutationObserver(function(mutat ..
发布时间:2021-09-03 20:31:05 前端开发

检测、更改或删除现有的变异观察者

如果某个 JS 添加了一个变异观察者,其他 JS 是否有可能检测、删除、替换或更改该观察者?我担心的是,如果某些 JS 旨在破坏某些 DOM 元素而不被发现,那么 JS 可能想要摆脱任何观察该 DOM 元素的观察者. 解决方案 我不确定检测是否已经安装了观察者,但是可以通过使用空函数重新观察感兴趣的节点来有效地删除它们.如果存在,重新观察节点将替换之前的观察者函数. var observ ..
发布时间:2021-07-17 20:36:48 其他开发

如何将mutationobserver注入puppeteer

我想要像无头 chrome 中的 mutationobserver 一样跟踪更改的 DOM.所以我在学习 puppeteer 库,但不知道如何使用. 可以在 puppeteer 中跟踪 DOM 变化吗??谢谢 解决方案 好吧,你可以向浏览器注入自定义代码. 一种方式: await page.evaluate(() => {const 观察者 = 新的 MutationObse ..
发布时间:2021-06-23 18:58:47 其他开发

MutationObserver类更改

我正在使用 MutationObserver 来检测何时将特定的类添加到元素中. const观察者=新的MutationObserver((mutations)=> {variants.forEach((mutation)=> {const el =突变目标如果((!mutation.oldValue ||!mutation.oldValue.match(/\ bis-busy \ b/))& ..
发布时间:2021-05-19 20:23:19 前端开发

重新连接和断开MutationObserver

这个问题是这个的续集.但是,没有必要阅读前一篇,我只是为感兴趣的读者提供一个链接. 有一个观察者,它将对某个类的每个元素做出反应,如@Shomz建议的那样: var target = document.querySelectorAll(“.someclass");for(var i = 0; i ..
发布时间:2021-05-19 20:02:50 前端开发

您如何获得一个变异观察者来检测文本区域的值变化?

我看到突变观察者曾经使用过诸如google chrome开发人员工具那样修改了doms的属性.但是,当 textarea 中的文本由于用户键入或粘贴而发生更改时,我找不到如何调用函数的方法.在我的代码中,即使所有观察选项都设置为true,当用户键入回调时也不会被调用.这是什么代码? 解决方案 变异观察者侦听DOM的更改.但是,表单元素的当前状态不能由DOM反映出来. 例如,创建输入元 ..
发布时间:2021-05-19 19:09:12 前端开发

MutationRecord.addedNodes节点列表(mutationObserver)中返回的节点数

MutationRecord.addedNodes返回带有检测到的节点的NodeList,该节点已添加到我的文档中.当我使用obj.appendChild()方法时,mutationObserver会检测到它,并以节点列表[node]的形式返回MutationRecord.addedNodes中的这个ONE节点.当我在循环中使用.appendChild()时,mutationObserver会触发 ..
发布时间:2021-05-02 20:16:01 前端开发