感謝IE瀏覽器愛好者投遞
微軟最近宣布了IE10平臺預覽版第一版 。 除了一些令人興奮的新功能 (CSS3 FlexBox、Grid、Gradients、MultiCol),該平臺預覽版也包括新的IE10 User-Agent 識別字符串:
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
總的來說這是一個自然演變,相比IE9的 User-Agent 字符串只有兩個變化:
此外,IE10的兼容性視圖仍然映射到IE7標準模式,就像在IE8和IE9中一樣。這裡的 User-Agent 字符串模仿IE7的兼容性視圖,不過 「Trident」 現標識為「6.0」來表示正在使用IE10。
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)
這是否會影響我嗎?
理想的情況下,很少有人要關注這些變化。 具體而言,你正在使用的特徵檢測(相同的標識)完全可以高枕無憂。
但是如果你的網站仍然使用 User-Agent 監聽 ,特別值得注意的是「MSIE」的標識增加到「10.0」。為什麼呢? 因為它添加一個額外的數字用於字符串值的標識。大多數的網站處理這個都會毫不費力,但有些網站在處理額外的位數時不正確,導致他們將IE10識別為IE1。
為了幫助說明這一點,這裡有一個正則表達式,只識別了「MSIE」標識值的第一位數字:
// INCORRECT: will report IE10 version in capture 1 as 「1″
var matchIE = /MSIE\s(\d)/;
這是一個識別了」MSIE」標識的全部值:
// Correct: will report IE10 version in capture 1 as 「10.0″
var matchIE = /MSIE\s([\d.]+)/
當然,你的代碼看起來可能顯著不同,這取決於您選擇的程式語言中字符串解析的方法等。對於你在Apache上自定義的http配置,可能還需要閱讀Eric Lawrence的此篇博文。