问题标签 [mutation-events]

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 投票
4 回答
19086 浏览

html - DOM 突变事件替换

由于 DOM 突变被 w3c 标记为已弃用(请参阅http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationevents),是否有(快速)替代方法来检测属性修改在 DOM 中?

0 投票
1 回答
946 浏览

javascript - 当 Webkit 中元素的样式发生变化时,如何使用 JavaScript 进行检测?(因为似乎不支持 DomAttrModified)

可能重复:
是否有可以在 webkit 中使用的 DOMAttrModified 的替代方法

当元素的样式发生更改时,我正在尝试使用 JavaScript 进行检测。如果检测到此更改(触发时.NET 验证器变得可见),它会触发页面上其他位置的另一个更改(对不受 .NET 代码控制的不相关元素的视觉效果。)

使用 DomAttrModified(或 IE 的 propertychange)我可以设置一个事件处理程序,在发生更改时通知我。但这不受 Webkit 支持。是否有替代或略有不同的处理程序可以满足我的要求?

这是一个演示页面,展示了我目前为 Firefox 和 IE 工作的内容:http: //cssquirrel.com/testcases/detect-style-change/

想法?

0 投票
3 回答
1473 浏览

javascript - 如何检查浏览器对功能/事件的支持?

过去,我们使用浏览器嗅探来推断某些事件或功能是否可用。我了解浏览器嗅探已被“弃用”或“回避”以支持功能嗅探。我想知道如何检查是否可以处理某个事件。

举个DOMNodeInserted例子。Chrome、FF 和 Safari 支持它,但 IE 不支持。如果此事件可用,我如何嗅探?有图书馆吗?你们如何进行正确的特征嗅探?

0 投票
4 回答
10913 浏览

jquery - Jquery - 添加DOM元素时运行功能

我有一个带有 jQ​​uery 和 jQuery UI 的网站。我有一个 Javascript 函数:

此函数在页面加载并更改所有具有“ToButton”类的元素后运行。

当用户按下按钮时,我也会更改 HTML 代码。例如:

我也想对这个新元素运行 ToButton 函数,但是 jQuery 中的 live 或 delegate 方法没有“show”或“create”事件类型。所以我需要在所有 HTML 代码更改后调用函数 ToButton() 。

你能帮我吗,我如何将 ToButton 功能委托给所有元素?

0 投票
1 回答
660 浏览

javascript - 在domnodeinserted之前 - javascript

是否可以在插入节点之前启动事件?我知道“domnodeinserted”在基于壁虎的浏览器中工作,但我在插入节点后执行代码。我实际上想在插入节点之前执行代码。提前致谢!

0 投票
2 回答
592 浏览

javascript - 规避 DOMNodeInsertedIntoDocument 事件

假设我有一个 javascript 函数createMyElement,它返回一个可以插入 HTML 文档的节点。

为了正常运行,由创建的节点的代码必须至少在插入文档后立即createMyElement侦听全局事件。document

我的第一次尝试是在创建时向节点添加DOMNodeInsertedIntoDocumentDOMNodeRemovedFromDocument侦听器document,依次添加和删除所需的侦听器。

但是,突变事件现在已被弃用(并且似乎不能跨浏览器可靠地工作),所以我正在寻找更好的解决方案。

document在创建节点时添加事件侦听器将起作用。然而,这似乎不是一个好的解决方案,因为它会造成内存和性能泄漏:即使在节点再次从文档中删除并且不再需要之后,监听器(及其对节点的引用)document也会仍然坚持。

0 投票
6 回答
26425 浏览

javascript - DOMNodeInserted 的替代方案

众所周知,DOMNodeInserted 会使动态页面变慢,MDN 甚至建议不要完全使用它,但没有提供任何替代方案。

我对插入的元素不感兴趣,我只需要知道某些脚本何时修改了 DOM。是否有更好的替代突变事件侦听器(可能是 nsiTimer 中的 getElementsByTagName)?

0 投票
1 回答
431 浏览

dom - DOMAttr修改了视觉属性

我有 DOMAttrModified 使用一些补丁在 webkit 上工作,我想知道改变什么样的属性会触发这个事件?例如,当我更改 innerHTML 时它不会触发。有没有一种简单的方法可以让我知道这些属性中的哪些直接改变了用户界面。例如 id 不是直接的,而是间接地 javascript 可以根据 id 的值来改变它。

谢谢!

0 投票
6 回答
12528 浏览

javascript - JQuery 或 vanilla Javascript 中的 DOM Mutation 事件

在 JQuery 或 vanilla Javascript 中是否有任何触发跨浏览器的 DOM 突变事件?

为了澄清,假设我的页面上有一个脚本,它将一个 div 插入正文。我无权访问脚本,也不知道何时插入了 div。我想知道是否有一个 DOM 突变事件可以添加一个侦听器,以了解何时插入了一个元素。我知道我可以使用计时器来定期检查插入,但是,我真的不喜欢这会带来的开销。

0 投票
4 回答
22378 浏览

javascript - 监听 contenteditable HTML 元素的事件

我试图弄清楚是否有任何方法可以监听具有属性的 HTML 元素之类的focus事件。changecontenteditable

我有这个 html 标记:

我已经尝试过这些但没有成功(JSBin):

我不想听键盘或鼠标事件。我在W3CMDN中没有找到任何关于contenteditable.

是否可以在内容可编辑的 HTML 元素上收听change和/或其他事件?focus