问题标签 [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.
javascript - mutationObserver - 如何观察innerHTML?
是否可以通过mutationObserver观察节点的innerHTML?我正在尝试使用 characterData: true,但它不会对内容更改进行任何回调。完整的选项列表:
javascript - 当元素内的 dom 停止变化时,有没有办法检测 dom 的“静止”?
使用 MutationObserver 在元素内的 dom 更改时调用函数非常容易,如下所示:
但是我希望它在'#dom_element'中的dom停止变化时做一些事情,或者如果几毫秒内没有变化。有没有办法做到这一点?
javascript - 为所有新创建的元素添加属性
例如,将值添加到所有新的 links 属性target
或添加到具有随机值的_blank
所有新<div>
的 s 属性。title
任何想法除了setTimout()
?
UPD:我需要类似的东西.attrGlobal()
。这个答案只允许使用 links 及其属性来做到这一点,但如何对所有元素及其所有属性做到这一点?target
UPD2:MutationObserver
按照SLaks 的 建议尝试,但点击添加按钮http://jsfiddle.net/1337/wvfkc/5/时 Firefox 冻结。
google-chrome - 如何访问在 Chrome 中打开的新网页的 DOM
我正在为此编写一个 NPAPI 插件,我正在使用来自谷歌浏览器的 NPSIMPLE 示例代码。我必须在 chrome 浏览器中打开网页的 DOM。我的插件解决方案还包括 background.html 文件。当我在 chrome 浏览器中打开时,它会调用 NPAPI 插件中的一个方法。所以我的插件可以获取这个文件的 URL。现在我想读取这个文件的 DOM 结构。
我有几个问题:
当用户在浏览器中打开一个新页面时,我如何将我的插件嵌入到该页面并获取该页面的 DOM?
每当打开新标签时,我如何在我的插件中获得通知?
如何获取我的插件的 DOM 突变通知?
NPAPI 是否提供 API 来获取 DOM 突变通知或内容脚本是唯一的选择?如果内容脚本是唯一的选择,那么如何在插件和 content_script 之间建立通信?
我也在努力得到这个答案。非常感谢任何帮助...
提前致谢...
javascript - 突变观察者不起作用
上面的脚本不能正常工作。我想将 DOMNodeInserted(Line19) 替换为 MutationObserver(line21),但是当我使用 MutationObserver 时,它不起作用。
第21行应该有问题,但我不知道问题是什么,我应该怎么做。
我用chrome28和firefox23检查了这个。
它是 chrome 的扩展,所以我不必使用“WebKitMutationObserver”或“MozMutationObserver”。
请告诉我解决方案。
javascript - javascript事件:获取文档文本完全加载但脚本尚未运行的时间
DOMContentLoaded
在加载文档并运行其脚本后触发,我想在执行脚本之前运行我的代码,但在document.body.outerHTML
( document.childNodes[document.childNodes.length-1].outerHTML
) 已满之后
我试试这个,但看起来它在被发现之后运行了很多次所以现在我在执行 mycode 之前做了一个定时器 200ms 的工作,但我想在没有定时器的情况下做
需要在 Chrome 中工作(所以 beforescriptexecuted 事件在这里不起作用)
javascript - 为什么 MutationObserver 代码不能在 Chrome 30 上运行?
从http://updates.html5rocks.com/2012/02/Detect-DOM-changes-with-Mutation-Observers我得到以下代码:
jsFiddle:http: //jsfiddle.net/cUNH9
如您所见,我们应该看到一个警报,因为一个div
元素被插入到 DOM 中。但似乎 MutationObserver 代码没有运行。如何成功运行 MutationObserver 代码?
javascript - 观察 div 中的属性变化
我正在尝试观察到
此 div 中的 data-result 属性。
大多数旧方法似乎已被贬值。我意识到 MutationObserver 是最好的方法。并自己写了一篇,但没有奏效。我找到了类似的onattrchange.js 。
有了这个,我试图解决我面临的问题。
我创建了这个jsfiddle,它能够检测输入更改(使用 $(document).on),但不能检测数据结果属性的更改。
我尝试了两种方法... (1) ('body').attrchange
(2)$(document).on('attrchange',...)
我不确定为什么这不起作用。(我对 js 和 jquery 也很陌生,通过编码学习)
编辑:我找到了一个类似的小提琴,它完全符合我的要求。我正在做类似的事情,但我想我犯了一些小错误。
javascript - MutationObservers - 未检测到添加的某些节点
我有一个内容脚本,它监听某些网站上文本节点的插入。它工作得很好,除了在 Facebook 上。脚本未检测到某些插入的文本节点。
脚本.js
如果我允许记录所有节点类型,我可以在我的日志中看到这些文本节点的父节点。
谢谢。
javascript - DOMNodeInserted/Removed 事件填充(或类似事件)
我需要一种方法来监听删除或添加节点的子节点时的更改。我制作了一个自动滚动插件,它可以在添加新项目时使元素滚动到底部。我正在听的事件是DOMNodeInserted
and DOMNodeRemoved
。
我一直在寻找DOMNodeInserted
和DOMNodeRemoved
. 环顾四周,我找不到任何已经存在的东西。并非所有浏览器都支持该事件,并且目前已弃用。我有一个简单的(可能是幼稚的)polyfill,我写得很快,但我怀疑它是否有效(很好)。
我知道这些事件已被弃用,但有没有更好的方法来监听元素子项的变化?