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

How to detect style change of an HTML element with YUI3?

本文关键字:样式 元素 HTML 何使用 YUI3 检测      更新时间:2023-09-26

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

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

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

如果你是通过javascript改变CSS,你可以使用突变事件(二级事件)。

你可以监听这些事件:

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

所以要么监听DOMAttrModified,带有Style属性,要么监听Class属性。