如何在IE9中检测浏览器模式是否在“Internet Explorer 9兼容性视图”中?

时间:2012-11-15 22:44:00

标签: javascript internet-explorer-9

我使用javascript脚本使用偏移来对齐某些元素。根据浏览器类型计算偏移量,因为它们的行为不同。在IE9中,获取DOM中的子元素或计算某些偏移量,如果IE9处于IE9浏览器模式或IE9兼容视图浏览器模式,则行为会有所不同。

如何检测浏览器模式是否在“Internet Explorer 9兼容性视图”中?此模式由用户在开发人员工具(F12)浏览器模式菜单选项中设置。

3 个答案:

答案 0 :(得分:1)

非常确定,我正在运行Linux并且我的虚拟映像刚刚崩溃:

if (document.all && document.documentMode === 8 && !document.addEventListener) {
    // IE9/IE10 in compatibility mode as IE8
}

On UA:

https://stackoverflow.com/a/12183662/887539

答案 1 :(得分:0)

我不记得我在哪里得到这段代码,但基本上IE8及以上的文档中都有一个名为“documentMode”的属性。如果存在,但您将IE7视为浏览器,则可以放心地假设您处于兼容模式。

documentMode explaination

答案 2 :(得分:0)

在IE7兼容模式下运行时,IE9的用户代理字符串可能不同,因此这是查找不同IE版本之间差异的最佳方法之一。

您可以在此处详细了解: http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx