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

5
我想检查当前域名是否启用了IE11兼容性视图。设置兼容性视图的方法是:工具>兼容性视图设置。
我知道几年前有些人问过这个问题,但看起来答案由于IE11的最新更新而不再适用。 有没有人知道其他的方法呢?

可能是如何检测IE11?的重复问题。 - Obsidian Age
2
IE 11 兼容模式是个矛盾词。 - zer00ne
@JaromandaX IE11已经更新,不再包含字符串“compatible”。 - Byron
你说了那些话,但我确信我已经拥有最新的IE11(在Windows 10中),当我将一个网站添加到“兼容性视图”时,userAgent中肯定仍然有“compatible”。 - Jaromanda X
是的,那就是它的位置——正常的userAgent是Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko...在兼容性视图下是Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0;)(为了清晰起见,已删除.NET部分)——关于IE11:版本:11.674.15063.0更新版本:11.0.47 - Jaromanda X
显示剩余3条评论
2个回答

1
在IE 8-11版本中,您可以使用document.documentMode。有效值为5、7(兼容模式)、8、9、10和11(Edge)。
  • 在控制台中设置兼容模式会直接更改该值。

  • 加载包含<meta http-equiv标签的页面会更改该值。

  • 将网站添加到"工具->兼容性视图设置"中的兼容性模式会将该值更改为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>

我想检测兼容性视图是否启用,而不是您所指的仿真选项卡下的兼容模式。在IE11中,设置兼容性视图是通过--工具>兼容性视图设置完成的。 - Byron

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

1
谢谢Janaki,但这与旧解决方案相同。我上面提到的IE11更新删除了字符串“MSIE”,无论您是否处于兼容视图中,因此这不起作用。 - Byron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接