2014-03-30 74 views
-1

尋找最簡單的方法來快速確定當前使用的Internet Explorer版本(如果完全使用JavaScript)。我希望通過所有古老的IE用戶代理字符串來極度精確地使用簡潔和實用性。使用JavaScript和userAgent輕鬆檢測IE版本

var IE = /*???*/; 

if (IE && IE<9){ 
    // degraded web experience 
} else { 
    // pro web experience 
} 
+0

瀏覽器嗅探和評論,如「這個頁面最好在* *中查看」嚴重*passé*。 – RobG

+0

@Robg:這個詞passe是passe積極學習的語言或GET OUT – ChaseMoskal

+0

哇!大喊不會幫助。關於瀏覽器嗅探的評論遠比「passise」這個詞更加被動地激進,或許一些表情符號會有所幫助? :-) ;-p無論如何,使用特徵檢測要好得多,並且可能會顯示諸如「此網站不支持您的瀏覽器,它需要* <最低瀏覽器版本列表> *」或類似信息。對於用戶代理字符串沒有標準,對於許多次要瀏覽器來說它是完全錯誤的(例如,我的電視中的瀏覽器是基於Linux的,但假裝是某種版本的IE)。 – RobG

回答

0

這是我想出來的:

var IE = (function getIEVersion(){ 
    if (navigator.appName == 'Microsoft Internet Explorer'){ 
    var regex = /MSIE ([0-9]{1,}).*;/; 
    var result = regex.exec(navigator.userAgent); 
    return result ?parseInt(result[1]) :0; 
    } else return 0; 
})(); 

//////////// 

if (IE && IE<9) alert("Your browser sucks!"); 
else console.log("We're cool"); 
  • IE總是整數
  • IE = 0當瀏覽器是不是Internet Explorer
  • 我測試過它在IE11的仿真模式下工作。
  • IE11是第一個IE不再宣告自己處於的userAgent字符串,因此IE11 +將作爲非IE出現該功能(IE = 0)

我很高興地知道,如果有人看到這種技術的任何問題,或知道更好的。

+0

爲什麼你想檢測它,我可以問嗎? – lifetimes

+0

@null:只是爲了告知傳統用戶他們應該升級他們的瀏覽器以獲得完整的體驗。 – ChaseMoskal

+0

難道你不能只使用條件註釋嗎? – lifetimes