公司的一個(gè)項(xiàng)目中需要判斷IE版本號(hào),因?yàn)?jQuery 2.0 去除了對(duì)瀏覽器版本號(hào)的判斷,于是就看到一老外寫(xiě)的一段代碼:
var _IE = (function(){
var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : false ;
}());
這段代碼著實(shí)巧妙!既簡(jiǎn)介、有向后兼容!一般做法都是:正則搜索 USER_AGENT ;
但因?yàn)闅v史原因, USER_AGENT 一直都不準(zhǔn)確,而且被各大廠商改的亂七八糟。
比如:
IE10 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
IE11 : Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
這都是些什么亂七八糟的什么字符串啊。。。鬼知道 IE12會(huì)變成什么?。?!
所以使用特性檢測(cè)、或者USER-AGENT檢測(cè)既不可靠,也不向后兼容!
強(qiáng)烈推薦上述代碼!
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄