使用JavaScript检测对元素的css更改

使用JavaScript检测对元素的css更改,javascript,html,css,webkit,Javascript,Html,Css,Webkit,有没有办法通过JavaScript检测对元素的CSS更改 我已经尝试过WebKitObserver,虽然它接近我所需要的,但它并没有达到我的目标 下面是正在发生的事情 我加载具有特定样式的页面 我改变了页面的主题 主题引擎将一个新的样式表附加到文档的头部-此样式表将具有一系列样式重载。为了简单起见,假设其中有一条规则,将框“a”的背景颜色更改为“红色”。 现在,由于我没有通过类或样式属性更改元素的样式,因此事件属性:对于观察者为true永远不会被触发 我需要的是一种检测元素背景颜色是否已变为红色

有没有办法通过JavaScript检测对元素的CSS更改

我已经尝试过WebKitObserver,虽然它接近我所需要的,但它并没有达到我的目标

下面是正在发生的事情

我加载具有特定样式的页面 我改变了页面的主题 主题引擎将一个新的样式表附加到文档的头部-此样式表将具有一系列样式重载。为了简单起见,假设其中有一条规则,将框“a”的背景颜色更改为“红色”。 现在,由于我没有通过类或样式属性更改元素的样式,因此事件属性:对于观察者为true永远不会被触发

我需要的是一种检测元素背景颜色是否已变为红色的方法,然后执行一些功能。必须在Webkit中工作


这可能吗?

为什么不在添加新样式表后立即执行相关操作?Chekout lazyload代码将向您展示如何,或者只使用这个库,因为它可以为您加载JS/CSS,执行回调并处理所有跨浏览器的问题issues@AlexanderPavlov-我不能按照你的建议做,因为不能保证在我执行回调代码时浏览器已经呈现了规则。我已经试过了。@gillesc-这可能需要修改主题引擎。我想避免这种情况。我会看一看lazy loader选项,看看我是否可以让它工作,但最好是一个不涉及主题引擎更改的解决方案。这就是为什么我说先看代码:该库负责观察CSS更改,代码很小,只需浏览并获取所需内容。移植这个跨浏览器会让你省去很多麻烦,你会发现,根据浏览器的不同,CSS被包含的方式会影响到它被应用的检测,链接标签并不适用于所有浏览器