问题标签 [mutation-observers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2070 浏览

javascript - 元素数组上的MutationObserver?

所以,假设我正在遍历 DOM 并隐藏<img>页面上包含特定 ID/Class 字符串的所有元素,例如

在 Facebook 等页面上,内容是动态加载的,因此不会自动隐藏新图像。

我正在尝试使用 aMutationObserver检查何时有任何与此数组匹配的新元素,但存在问题。

出于某种原因,我收到错误:

即使MyObject.getAll是一个内部有大量节点的数组?

基本上,我想documentSelectorAll('[id*="example"],[class*="example"]')通过 MutationObserver 检查是否有任何新加载/可见的元素与我的数组匹配,然后我可以通过隐藏它等来采取适当的行动。

0 投票
0 回答
171 浏览

jquery - 如何让 jquery onClick 在与 ember click 相同的时间和突变观察者触发之前触发?

我有这样的情况:

我有一个带有导致路由更改的 ember 操作的按钮,以及相应的 DOM 更新。这个 DOM 也被一个变异观察者监视。我想要做的是在用户单击按钮之后但在突变观察者触发之前运行一些 jquery 代码。然而,目前突变观察者总是在触发 jquery onClick 之前触发。

我怎样才能达到我想要的订单?我应该在观察者中使用延迟承诺吗?

0 投票
2 回答
1453 浏览

javascript - MutationObserver 没有得到所有更新

我在 chrome 扩展中有以下代码:

这发生在动态添加内容的网站上。(谷歌+)。如果用户向下滚动并添加一些新元素,一切都会完美无缺。

如果用户离开浏览器一段时间并单击导致显示许多新元素的按钮,则 MutationObserver 似乎错过了一些节点。我可以在调试窗口中验证此行为。(一些添加了“nja”类的 div 被写入控制台,有些则没有)

所以对我来说,这似乎只有在一次没有添加太多 div 的情况下才有效。是否有任何配置可以改变这种行为?

(因为这是一个 chrome 扩展,我只需要 chrome 的解决方案,而不需要任何其他浏览器)

0 投票
1 回答
215 浏览

javascript - 观察一个 DOM 属性

我正在尝试监视第三方网站上的 DOM 元素。在倒数计时器到达之前,该元素是不存在的,然后它被创建。

我已经取得了一些成功: document.getElementsByClassName('countdown ng-hide').length

当它从 0 变为 1 时,我想实现一个功能。

我该怎么做?我尝试过使用 Mutation Observer,但它不会让我观察到空节点。

谢谢!

编辑:这是我到目前为止所得到的。

0 投票
1 回答
650 浏览

javascript - 如何使用变异观察者按 ID 隐藏元素

我已阅读https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/但仍不确定如何配置以实现我的目标。

页面上有一个元素是由代码生成器生成的(所以我无法阻止这种行为)。该元素有一个 id “myid”,我只需要在它显示在浏览器中时隐藏它。我的挑战是如何配置观察者,以便在显示元素时触发代码。

我已将我的问题作为评论插入我认为我需要帮助的地方,但如果我错了,请指导我:

0 投票
1 回答
13844 浏览

javascript - JavaScript 中的简单变异观察者示例不起作用

我尝试MutationObserver在我的网页中添加一个来跟踪图像的变化src,但这不起作用。

这是使用的代码:

0 投票
1 回答
726 浏览

javascript - 在闭包编译器中使用 MutationObserverInit 的方法是什么?

在 Mozilla 开发者网络上,有一个关于如何使用 MutationObserver的示例。

config变量是Object一个。但是闭包编译器会生气

错误 - MutationObserver.prototype.observe 的实际参数 2 与找到的形式参数不匹配
:{attributes: boolean, characterData: boolean, childList: boolean}
required: (MutationObserverInit|null|undefined)observer.observe(node, config);

因为它是在externs/html5.js中设置的。
但是,我找不到实例化 MutationObserverInit 类型对象的方法,因为“未捕获的 ReferenceError:未定义 MutationObserverInit”。

在这里做什么是正确的?

0 投票
1 回答
471 浏览

javascript - window.opener.document 上的 MutationObserver 不起作用

我在一个由 javascript 打开的窗口中

在这个新窗口中,我使用MutationObserver订阅打开窗口上的更改。

它在 Chrome 上运行良好,但在 IE 11 上运行良好,我收到 NotFoundError 异常。

该错误似乎来自我在另一个窗口上观察文档的事实。如果我观察当前窗口的文档,那很好。我在任何地方都找不到这种行为记录。

有什么方法可以完成这项工作吗?这个限制是否记录在案?

0 投票
1 回答
765 浏览

javascript - MutationObserver 工作示例?FF 或铬

我创建了一个 JSfiddle 示例,说明我想如何测试 MutationObserver。死的简单。 http://jsfiddle.net/bqcpna3k/6/

HTML

Javascript

CSS

在其他测试中,我在让 MutationObserver 函数可靠运行时遇到了问题。我在观察 div 而不是 document.body 时也遇到了问题。

在上面的小提琴中, MutationObserver 函数根本没有运行。

0 投票
1 回答
293 浏览

jquery - 使用 jQuery 捕捉 CSS 变化

我想要做的是通过 CSS 找出元素的 CSS 值何时更改。假设背景颜色已更改为其他颜色。例如通过使用 :hover。

起初我以为Mutation Observer会解决这个问题,但我错了。当 CSS 文件中元素的样式发生更改时,它不会影响该元素的样式属性。例如,假设我有一个 id 为“test”的元素:

Mutation Observer 将其检测为样式更改。

但是在 CSS 文件中执行此操作不会触发事件:

所以我要问的是 - 有没有办法找出,最好是使用 jQuery,什么时候在 CSS 文件中对元素进行了更改?