2010-09-15 50 views
5

我在IE8中遇到奇怪的行为,这似乎是一个IE错误,但我不知道。 从元素访问currentStyle字段时,它返回null。如果我在观察窗口中查看它的属性,我可以看到它已被定义,并且我可以查看它的成员。看起来,如果我手动调用属性,那么它会返回正确的currentStyle。我想知道是否有人曾经见过这种行为,并知道一些解决方法。这在构建dojo网格时发生。 我也不能覆盖这个JavaScript行为,因为它深埋在一个外部Javascript库(dojo)中,并且我无法在第一个地方重写函数(函数在另一个函数作用域中定义)。奇怪的IE行为:currentStyle返回null

+0

你的意思是'currentStyle'或'currentStyles'? – 2010-09-15 23:57:16

+0

oops我的意思是currentStyle – Bishnu 2010-09-16 00:00:48

+0

通常,访问'currentStyle'直到元素被添加到文档中(这会使属性可用)是没有意义的。 – bobince 2010-09-16 00:05:27

回答

2

IE中的currentStyle对象是异步的。这意味着不能设置样式并立即查询。一旦JavaScript完成更改,您必须让IE根据您的操作采取行动。您可以将TimeTimeout设置为0毫秒,这会将函数调用保存到某种类型的队列中,并且在调用JavaScript的下一个位之前,IE将执行DOM更改。