1

我想在IE9中檢測兼容模式並向用戶顯示警告消息。當IE9兼容模式檢測到時顯示警告

我的兼容性視圖設置是「以兼容模式顯示所有網站」。但是,對於IE9來說,這種情況並非如此。

if(navigator.userAgent.indexOf("MSIE 7.0") > 0 && navigator.userAgent.indexOf("Trident/5.0") > 0). 

我可以從F12選項驗證我是否處於IE 9兼容模式。當我打印navigator.userAgent時,它顯示MSIE 9.0。但是,從F12選項,如果我從兼容模式更改爲正常模式,然後兼容模式,我可以看到userAget具有MSIE 7.0,並且條件變爲true。

如何解決?

如果我們在IE9兼容模式下打開它,是否有任何網站上顯示這樣的警告?

+0

最好的答案我可以給是停止使用兼容模式。沒有理由使用它 - 爲什麼通過刪除功能故意削弱瀏覽器?無論如何,compat模式在完全向下兼容方面並不是很好。只需使用「X-UA-Compatible」元標記強制IE使用標準模式,並將其留在那裏。 (btw;當你升級到IE11時,你會發現從開發工具切換到compat模式的選項已被刪除,因爲MS想阻止它的使用)。 – Spudley

回答

0

使用的測試的組合爲的XPath的API,用戶代理字符串,和窗口屬性,以確定IE9兼容模式:

//IE XPath API 
if (!!window.XPathEvaluator === false && !!window.XPathExpression === false) 
    { 
    //Compatibility Mode 
    if(/compatible/.test(navigator.userAgent)) 
    { 
    //IE9 innerWidth property exists, but IE10 matchMedia property does not 
    if(!!window.innerWidth && !window.matchMedia) 
     { 
     alert("IE9 compatibility mode"); 
     } 
    } 
    }