2010-09-15 76 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更改。