2009-07-27 159 views
0

我有一個相當複雜的頁面,其中包含一個絕對定位的表(作爲正文中的最後一個元素)。該表是使用jQuery動態創建的。無論我如何指定cellspadding屬性,IE8在兼容模式下都會忽略它。有幾種跡象表明它爲什麼會被忽略:兼容性模式下的Internet Explorer 8忽略cellpadding

  • 佈局關閉了默認的填充(2px)。

  • 在IE Developer Tools底座中,屬性顯示爲「cellpadding」(全部小寫),而cellspacing屬性顯示爲「cellSpacing」,並且如果將屬性選項卡下的值更改爲0,固定並且名稱更改爲「cellPadding」。

正如我所說,這是一個相當複雜的頁面(讀「混亂」)全從多個來源粘貼廣告和內容。我打算做更多的調查,但我想知道是否有人遇到過同樣的問題。它必定是一些邊緣情況可能導致無效標記導致這種誤解。

回答

0

原來,這個問題是由jQuery中的錯誤引起的(或至少它看起來像一個bug,除非有其他原因,我沒有看到)。我將它提交給jQuery bug跟蹤器:#4978。爲了長話短說,jQuery以特殊方式處理cellspacing,並在設置其值之前將其轉換爲cellSpacing。它不是cellpadding同樣的事情。這會導致IE7出現問題,因爲setAtribute()函數默認情況下是區分大小寫的(在IE7中)。

1

首先,也許你應該檢查IE7.0上的相同頁面,以確定「錯誤」是由於IE7.0如何處理它,或者如果它是IE8.0兼容模式下的錯誤。

根據結果,你可以做到以下幾點:

  1. 同樣的錯誤在IE 7.0:找到一個方法來處理它。

  2. 錯誤只在IE 8.0兼容模式:報告錯誤/找到一個方法來處理它沒有讓修復影響IE 7.0用戶。

  3. 僅在IE 8.0兼容模式下出錯:什麼也不做,沒有人在兼容模式下使用IE 8.0。

+0

感謝您的反饋。它在我的TODO清單上。唯一的問題是,我剛剛意識到,我沒有一臺真正的IE7的機器。 – 2009-07-27 14:44:17

相關問題