用 javascript 判斷 IE 版本號

今天一個項目中需要判斷IE版本號,又因爲 jQuery 2.0 去除了對瀏覽器版本號的判斷(它推薦特性檢測),於是就看到一老外寫的一段代碼:

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 ;
}());

這段代碼着實巧妙!既簡介、有向後兼容!一般做法都是:正則搜索 USER_AGENT ;
但因爲歷史原因, USER_AGENT 一直都不準確,而且被各大廠商改的亂七八糟。

 

比如:

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會變成什麼!!!
所以使用特性檢測、或者USER-AGENT檢測既不可靠,也不向後兼容!

強烈推薦上述代碼!

——————————————————————-

以前剛學會編程的時候,感覺自己知道的挺多,有很多東西可以寫;
可真正深入學習很多知識之後,卻痛苦的發現自己知道的實在是太少了!

想寫點什麼,卻很難下筆


--------------------------------------------------------------------------------

     原文地址


發佈了15 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章