0

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

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

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

4

1 回答 1

1

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

您可以收听这些事件:

  • DOMAttrModified
  • DOMAttributeNameChanged
  • DOMCharacterDataModified
  • DOMElementNameChanged
  • DOMNodeInserted
  • DOMNodeInsertedIntoDocument
  • DOMNode 已移除
  • DOMNodeRemovedFromDocument
  • DOMSubtreeModified

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

于 2013-06-07T15:13:36.093 回答