大家好,本月早些時候在IE9發佈之後,對系統進行了一些修復。只是想知道是否有其他人遇到了與我有條件註釋和IE9相同的問題,以及是否有針對我的問題的更好的解決方法。IE9支持Javascript的條件註釋?
有條件的評論是衆所周知的作爲IE瀏覽器的解決方案一致工作。 IE9似乎打破了這一點。我正在測試一個特定於IE9的腳本(特別是document.createElement(「<輸入名稱='東西'>」);打破了IE9,但那是一個不同的問題),我需要爲IE 6做一個解決方法。我這樣做了:
<!--[if IE 6]>
<script type="text/javascript">
var ie6 = true;
</script>
<![endif]-->
<!--[if IE 7]>
<script type="text/javascript">
var ie7 = true;
</script>
<![endif]-->
在IE9中發現,ie6和ie7都是真的。 WTF。
我的解決方法是將其更改爲條件註釋下面的邏輯相反,只是如果(!ie9plus)。
<!--[if gte IE 9]>
<script type="text/javascript">
var ie9plus = true;
</script>
<![endif]-->
有沒有更好的解決方法?我們是否應該在IE開發團隊中大喊大叫,打破Web調試的這個重要方面?
編輯:經過進一步測試,似乎這是一個編碼問題。不知怎的,文件編碼錯了,它打破了條件註釋。當我將註釋更改爲IE9時,我也修復了文件編碼。 IE9實際上確實支持有條件的評論。對FUD抱歉。
我無法複製你的發現。在IE9中,ie6和ie7都是未定義的。如果您將頁面更改爲兼容性視圖模式,則會定義ie7,但ie6不是。 – EricLaw 2011-03-30 17:47:05
我在IE9標準渲染的IE9瀏覽器模式下運行。文檔類型爲「<!DOCTYPE html PUBLIC」 - // W3C // DTD XHTML 1.0 Transitional // EN「」http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd「>' – synthparadox 2011-03-30 18:43:42
我認爲你已經很好地清除了關於這個主題的任何可能的FUD。 – Will 2011-03-31 12:53:07