Style属性为IE和Firefox控制台返回不同的值

时间:2014-02-17 13:00:03

标签: javascript internet-explorer firefox cross-browser

我有div在执行期间的不同时间有不同的样式。 当我尝试在JS中读取样式的值时,我在不同的浏览器中得到不同的结果。

IE:"DISPLAY: inline;"
Firefox:"display: none;"
Chrome:"display: none;"

Chrome和Firefox给出了相同的结果,但IE有不同的结果。如何使其适用于所有浏览器? 这可以解决吗? 我必须阅读这个属性,并根据条件进行计算。

1 个答案:

答案 0 :(得分:0)

没有太多代码可以看,但很好的猜测是,脚本设置了div.runtimeStyle.display = 'none'。设置runtimeStyle并不反映style对象的值,只能在屏幕上看到效果。

(由于某些原因display无法在链接页面的属性列表中找到runtimeStyle.displaystyle可以正常工作。)

另一种方法是,在设置display: none后立即使用currentStyle对象检索getComputedStyle()的值(例如,如果currentStyle没有,则jQuery使用此对象)存在(IE <9))。 console.log($('#div').css('display', 'none').css('display')); 以异步方式更新,并且在您读取值时可能尚未更新。

在IE&lt; 9:

中导致问题的可能代码
{{1}}