问题标签 [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 投票
1 回答
264 浏览

javascript - 使用 Mutation Observers 将 DOM 元素列入黑名单

我想在 Chrome 中使用 Mutation Observers 来监控整个文档中的 DOM 变化。但是,我想用某些id's 将特定元素列入黑名单。有没有办法做到这一点?

0 投票
1 回答
270 浏览

javascript - 如何获取从 DOMNodeRemoved 事件中移除的元素的节点位置

我正在尝试确定从 DOMNodeRemoved 事件中删除的节点的文档位置。但是,由于它是被移除的元素,因此该节点不再保存其 previousSibling 元素。有没有办法确定删除节点的位置?

0 投票
1 回答
2749 浏览

google-chrome - 我应该使用 MutationRecord.oldValue 吗?

我在 Windows 7 上使用最新的 Google Chrome 稳定版(19.0.1084.56 m),并首次尝试使用 Mutation 观察者。(该项目是第三方网站的用户脚本,我无权访问其服务器。)

所以碰巧MutationRecord有一个字段oldValue

record . oldValue

返回值取决于type. 对于“ attributes”,它是更改前的已更改属性的值。对于“ characterData”,是变更前节点的数据。对于“ childList”,它为空。

因此,我正在监视对的更改,characterData但是当我得到MutationRecord该字段时,该oldValue字段始终为空。

如果它可以工作,是否有可能我有什么问题,或者这个功能太前沿而无法期望工作?

在某个地方我可以找到 Google 的文档、错误报告、功能请求等,这些文档可能会声明是否已实施或何时实施?

0 投票
2 回答
6876 浏览

javascript - 如何让突变观察者检测文本区域的值变化?

我见过突变观察者在修改doms时用于获取doms的属性,例如使用google chrome开发者工具。textarea但是,当由于用户键入或粘贴而导致文本更改时,我无法找到如何调用函数。在我的代码中,当用户键入回调时,即使所有观察选项都设置为 true,也不会调用回调。这个代码是什么?

0 投票
1 回答
1127 浏览

javascript - 如何使用 jQuery 检测 HTML 元素是否消失?

在用户脚本中,我使用waitForKeyElements().
但是,我遇到了一个特定示例,该示例waitForKeyElements不能可靠地触发更改。
我的用户脚本会调整theirID以插入内部跨度,例如您在此处看到的:

然后该站点更改此代码以删除我的内部跨度,因此它看起来像:

出于某种原因,在某些情况下,waitForKeyElements只是不会被该更改触发。我试图检测外部跨度、内部跨度、外部跨度的父级、其父级等的变化。

所以我现在想知道是否有其他方法可以检测,例如,元素 w/ myclass2(内部跨度)是否消失了?我想我可以投票$('.myclass2').length,但我不知道它从文件中的哪个位置消失了。理想情况下,我会知道持有现在丢失物品的特定父母。

有任何想法吗?

0 投票
4 回答
52751 浏览

jquery - jQuery 选择器可以与 DOM 变异观察者一起使用吗?

HTML5 包含一个“突变观察者”的概念来监控浏览器 DOM 的变化。

您的观察者回调将传递看起来很像 DOM 树片段的数据。我不知道它们是否正是这样,或者它们是如何工作的。

但是,当您编写代码以与您无法控制的第 3 方站点交互时,例如使用 Greasemonkey 脚本或 Google Chrome 用户脚本,您必须检查传入的元素树以查找与您相关的信息。

这对于选择器来说要简单得多,就像使用任何 DOM 一样,比手动遍历树要简单得多,尤其是对于跨浏览器代码。

有没有办法将 jQuery 选择器与传递给 HTML5 突变观察者回调的数据一起使用?

0 投票
3 回答
31803 浏览

javascript - 用于创建新元素的 Mutation Observer

我正在尝试在创建特定 div 时关闭功能。用最简单的术语来说,我有这样的事情:

之前,我让突变事件监听 div#bar 的创建 - 像这样:

是否有使用 Mutation Observers 的等价物?我尝试了 attrchange.js,在 DOM 元素的样式对象更改后,您可以使用 javascript 钩子触发器吗?但是该插件仅检测元素何时被修改,而不是何时创建。

0 投票
1 回答
947 浏览

javascript - 如何使用 Modernizr.js 测试 DOM4 Mutation Observers?

我正在尝试创建一个测试来检测使用 Modernizr.js的Mutation Observers 。在 Modernizer 文档中,有一个部分用于测试 DOM 元素,称为前缀。我尝试使用:

但很明显,这是行不通的。我得到一个TypeError: f.bind is not a function我相当确定前缀字符串不是 MutationObserver,但我不知道它可能是什么,或者即使我正在正确编写测试。有任何想法吗?

0 投票
3 回答
14280 浏览

javascript - Internet Explorer 中 MutationObservers 的可用性

IE 中尚不提供 AFAIK 突变观察器。Chrome、Safari、Firefox 都有自己的实现方式,并通过标准化流程进行工作。我想知道是否有人(最好是 MS 员工)知道 IE 的故事,或者可能会给我一个指向我错过的文章的指针。

0 投票
1 回答
1954 浏览

javascript - IE10 是否支持 DOM4 Mutation Observers?

如果没有,那么我只能希望与带有突变事件的 IE9 相同的行为?

我问是因为我目前没有可用的 IE10 平台,而且谷歌搜索没有为我产生任何结果。