如何使用YUI3检测HTML元素的样式更改?

时间:2013-06-07 14:52:23

标签: javascript jquery css styles yui3

我正在使用的网站使用的是一个片状广告提供商,有时他们返回的JS代码是错误的,例如最终改变整个body元素的背景颜色而不是它自己的div元素。不幸的是,我们必须使用他们的服务,他们需要很长时间才能纠正这些错误。

所以,我正在考虑创建一个解决方法,例如当body元素的background-color样式发生更改时,将调用我的回调函数将其更改回正确的值。是否有一个干净的方法来使用YUI3(或jQuery,或纯JS,如果YUI3没有它)?

我知道我可以定期设置背景以使用setInterval()来纠正颜色,但这对我来说似乎是浪费和混乱。有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您要通过javascript更改CSS,则可以使用Mutation Events(二级事件)。

你可以听取这些事件:

  • DOMAttrModified
  • DOMAttributeNameChanged
  • DOMCharacterDataModified
  • DOMElementNameChanged
  • DOMNodeInserted
  • DOMNodeInsertedIntoDocument
  • DOMNodeRemoved
  • DOMNodeRemovedFromDocument
  • DOMSubtreeModified

所以要么使用 Style 属性或 Class 属性来监听DOMAttrModified。