2015-04-21 45 views
2

最近我的團隊陷入了一個奇怪的情況。去年年底,我們從IE 8遷移到IE 11.我們的應用程序現在設計爲可在IE 11 Enterprise模式下工作。Internet Explorer版本11企業模式檢測

如果用戶使用IE 8,我們需要顯示一個javascript警報消息來升級瀏覽器。警告消息已成功顯示給使用IE 8的用戶。但是,當警報消息也顯示給用戶時誰在企業模式下使用IE11。我知道IE11 Enterprise模式基本上模擬IE 8的行爲,這就是我們的瀏覽器檢測功能失敗的原因。

因此,我想檢查是否有人已經實現了這種功能,即使他們正在使用IE 11企業模式,他們也可以成功檢測IE版本。

所有回覆都很有價值。感謝您的迴應!

+2

您如何檢測瀏覽器? –

+0

請發佈您當前擁有的代碼。那會給你更好的結果。 –

+0

function getIEVersion() { \t var rv = -1; //返回值假定失敗。 \t if(navigator.appName =='Microsoft Internet Explorer') \t { \t var ua = navigator.userAgent; \t var re = new RegExp(「MSIE([0-9] {1,} [\。0-9] {0,})「); \t如果(re.exec(UA)= NULL) \t RV = parseFloat(正則表達式$ 1);! \t} \t返回rv; 0​​} 如果(getIEVersion()> -1 && getIEVersion()<= 8){ alert('需要更新瀏覽器,請更新到IE 11'); \t \t \t \t} –

回答

1

按照MSDN:

如Internet Explorer 11,用戶代理字符串已經改變 顯著......網站依賴於用戶代理字符串應該 更新,以現代技術,如如特徵檢測,自適應 佈局等現代實踐。

https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

雖然IE11在EM拋出

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Tablet PC 2.0) 

這是不可取的只是尋找 「MSIE」 中的userAgent而是嘗試:

var isIE11 = !!navigator.userAgent.match(/Trident.*rv[ :]*11\./) 
0

我我只是看着這個自己。我最近偶然發現了this - 但無法使其可靠地工作 - 但是尋找IE通常不可用的功能的概念是合理的。

我現在的計劃是用IETruth獲得的版本號(它在做的IE11版本檢測非常好),然後做一些事情,如:

var IE = IeVersion(); if(IE.TrueVersion < 9 && ('spellcheck' in document.createElement('textarea')) { // must be running in Enterprise mode because spellcheck wasn't introduced until IE10 }

我會讓你知道我是怎麼進行!

0

您可以使用文檔模式檢查企業模式。因爲在EM中,文檔模式被設置爲IE 5至IE 8。此檢查與瀏覽器檢查功能一起工作。

How to get browser "Document Mode"

相關問題