Javascript 如何使用YUI3检测HTML元素的样式更改?
我正在工作的网站使用的是一个古怪的广告提供商,有时他们返回的JS代码有问题,例如,最终改变了整个Javascript 如何使用YUI3检测HTML元素的样式更改?,javascript,jquery,css,styles,yui3,Javascript,Jquery,Css,Styles,Yui3,我正在工作的网站使用的是一个古怪的广告提供商,有时他们返回的JS代码有问题,例如,最终改变了整个主体元素的背景颜色,而不是它自己的div元素。不幸的是,我们不得不使用他们的服务,他们需要很长时间才能纠正这些错误 因此,我正在考虑创建一个变通方法,例如,当主体元素的背景色样式更改时,将调用回调函数将其更改回正确的值。有没有一种干净的方法可以使用YUI3(或者jQuery,或者如果YUI3没有的话,可以使用纯JS) 我知道我可以使用setInterval()定期将背景设置为正确的颜色,但这对我来说既
主体
元素的背景颜色,而不是它自己的div
元素。不幸的是,我们不得不使用他们的服务,他们需要很长时间才能纠正这些错误
因此,我正在考虑创建一个变通方法,例如,当主体
元素的背景色
样式更改时,将调用回调函数将其更改回正确的值。有没有一种干净的方法可以使用YUI3(或者jQuery,或者如果YUI3没有的话,可以使用纯JS)
我知道我可以使用
setInterval()
定期将背景设置为正确的颜色,但这对我来说既浪费又混乱。有人知道更好的方法吗?如果您通过javascript更改CSS,您可以使用(二级事件)
您可以收听这些活动:
- 多姆塔特修改
- 域属性更改
- DOMCharacterDataModified
- 家庭成员名称已更改
- 域名插入
- DOMNodeInsertedIntoDocument
- 域名删除
- DOMNodeRemovedFromDocument
- 多姆萨特雷修改
因此,可以使用Style属性或Class属性收听DOMAttrModified。在重复时使用背景图像怎么样?这样,如果它们更改颜色,就不重要了,因为您仍然有平铺背景。或者您可以将背景属性声明移动到另一个标记中?与其使用
body
不如使用hmtl
或嵌套在body中的第一个div?只是一些想法。@ProfileTwist我已经在repeat上有一个背景图像,但它在顶部定义了一个渐变,因此它有repeat-x
,但没有repeat-y
。我不知道如何让它在二维中重复。我无法在html
上设置背景色,因为它被body
的样式覆盖。我没有一个包含所有内容的div
元素,但我会检查是否可以添加它。无论如何,感谢你的想法,我喜欢它们:)广告服务器在我的代码中插入html,body,#someid{背景色:随便什么}
,我想他们的意思是html body#someid
…你为什么不使用一个脚本来检测“更改”呢?如果您知道html、body和someid可能会受到影响,为什么不通过研磨机运行它们并更改它们的设置?如果我是你的话,我宁愿花时间对广告开发者大喊大叫,告诉他们现在就把它修好。改变这样一个小错误应该只需要30分钟。这是一个非常严重的错误,叫喊部分已经完成,他们最终会修复它,但与此同时,我们的用户得到了一个坏页,我不得不尽快修复它。。。它现在已经修复,但我正在寻找一个更干净的解决方案。这看起来是解决这个问题的一个很好的干净的解决方案,但不幸的是浏览器支持真的很弱:(无论如何,谢谢)。@szery如果欢迎,试着用谷歌搜索一些多边形填充,也许你会很幸运。