javascript - 如何获取浏览器 "Document Mode"

标签 javascript internet-explorer httpbrowsercapabilities

我正在开发某种 JavaScript 库。我造成的问题是我有一些具体问题: 浏览器:IE8/IE9 文档模式:IE7 我找到了解决方案,但我不想在所有情况下都使用它,而只想在遇到上述情况时使用它。我知道我可以使用以下方法识别浏览器:

return navigator.userAgent.toLowerCase().indexOf('MSIE 8') > -1;

但是我以这种方式只识别浏览器版本而不是文档模式,并且当我有浏览器模式 IE8 和文档模式 IE 8 时,我不想使用我的解决方案。 有没有办法在IE中获取页面文档模式?提前致谢。

最佳答案

您可以使用 document.documentMode 准确返回 IE 正在使用的文档模式。

这意味着,如果您将浏览器模式设置为 IE9,但将文档模式设置为 IE8,它将返回 document.documentMode == 8(而 userAgent 字符串仍将显示为 IE9)。如果您的 JS 包含样式更改,这将特别有用,因为它是决定 IE 如何呈现页面的文档模式,而不是浏览器模式。兼容模式实际上只是更改文档模式(通常为 IE7)。

在我需要的少数情况下,我只是使用类似这样的东西来区分 IE:

if (document.documentMode == 7) {
    doSomethingIn.IE7_only;
} else {
    doSomething.everwhereElse;
}

希望对一些人有所帮助。

关于javascript - 如何获取浏览器 "Document Mode",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121016/

相关文章:

javascript - Angular route 的动态页面

jquery - Modernizr.load 不提供 IE7/IE8 中的输入和文本区域占位符支持

javascript - 寻找有关打开包含 JavaScript 的 HTML 文件时显示 IE "yellow bar"的原因的文档

asp.net - 如何检测用户操作系统

javascript - 在我的项目中包括 "Boolean-parser"库 ("require is not defined")

javascript - Jquery 如果它的第一次元素被点击

javascript - Angularjs 自定义组件与 ngSwitch 指令编译顺序

javascript - IE 中的“无效参数”错误,行号不存在

c# - 在 ASP.NET 中使用 Masked Edit Extender 的 TextBox 中的退格键或删除键在 Chrome 中不起作用