dom - 是否有可以在 webkit 中使用的 DOMAttrModified 的替代方法

标签 dom webkit mutation-events

我需要利用这个 DOM 事件。 IE 有 onpropertychange,它也可以做我需要它做的事情。然而,Webkit 似乎不支持这个事件。有没有我可以使用的替代方案?

最佳答案

虽然 Chrome 不发送 DOMAttrModified事件,自 2011 年以来支持更轻量级的突变观察者,这些也适用于属性更改。

以下是文档正文的示例:

var element = document.body, bubbles = false;

var observer = new WebKitMutationObserver(function (mutations) {
  mutations.forEach(attrModified);
});
observer.observe(element, { attributes: true, subtree: bubbles });

function attrModified(mutation) {
  var name = mutation.attributeName,
    newValue = mutation.target.getAttribute(name),
    oldValue = mutation.oldValue;

  console.log(name, newValue, oldValue);
}

对于简单的属性更改,console.log声明将打印:
<body color="black">
<script type="text/html">
document.body.setAttribute("color", "red");
</script>
</body>

安慰:
> color red black

关于dom - 是否有可以在 webkit 中使用的 DOMAttrModified 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882224/

相关文章:

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

php - 在 DOM createElement 中将两个变量相乘

javascript - 修改指定 li 元素 JS 的父级

ios - Web View 无法加载特定 URL(Web 工具包错误域 102)

html - 使用 JavaScript 重新渲染时阻止 img 标签闪烁

javascript - 为什么 MutationObserver 代码不能在 Chrome 30 上运行?

java - Dom解析xml问题

javascript - 用 contenteditable div 中的组件以 Angular 包装某些单词

css - 如何覆盖 "::-webkit-scrollbar"CSS 规则并使滚动条再次可见

javascript - DOMNodeInserted 可以标记添加的元素吗?