如何使用JS检查IE11是否处于兼容性视图中

时间:2017-10-17 01:37:53

标签: javascript internet-explorer-11 compatibility

我想检查当前域是否启用了IE11兼容性视图。设置兼容性视图是通过:工具>兼容性视图设置。

我知道几年前有人问过这个问题,但由于answers

recent update on IE11.看起来不再有用了

有没有人知道另一种方法吗?

2 个答案:

答案 0 :(得分:1)

在IE版本8-11中您可以使用document.documentMode。有效值为5,7(兼容模式),8,9,10和11(边缘)。

  • 在控制台中设置兼容模式会直接更改值。

  • 加载带有<meta http-equiv标记的网页会更改值

  • 在&#34;工具 - &gt;中将网站添加到兼容模式兼容性视图 设置&#34;将值更改为7。

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

<强>实施例

例如,如果我在IE11中加载此页面,我会得到documentMode的11。

<!doctype HTML>
<body>
<p>Hello World!<p>
</body>

在IE11中加载的此页面将documentMode设置为9。

<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=9"/>
</head>
<body>
<p>Hello World!<p>
</body>
</html>

答案 1 :(得分:0)

如果您只想检查是否在兼容模式下运行,可以使用此脚本。

//创建新的ieUserAgent对象

var ieUserAgent = {

init: function () {

// Get the user agent string

var ua = navigator.userAgent;

this.compatibilityMode = false;

   // alert (ua);

    if(ua.indexOf("MSIE") == -1){

        this.version = 0;

        return 0;

    }

    if(ua.indexOf("compatible") == -1){

        this.compatibilityMode = false;

        return 0;

    }else{

        this.compatibilityMode = true;

        return 0;

    }

}
};

// Initialize the ieUserAgent object
ieUserAgent.init();

-OR -

/ **  *检查客户端是否为IE并且在兼容性视图中  *  * @returns {boolean}  * /

function isIECompatibilityMode() {

    var ua = navigator.userAgent;

    if (ua.indexOf("MSIE") == -1) {

        return false;

    }

    return (ua.indexOf("compatible") != -1); }