【问题标题】:IE8 documentMode always 'quirk mode'IE8 documentMode 总是“怪癖模式”
【发布时间】:2013-01-27 15:46:20
【问题描述】:

当用户使用低于 IE8 的 IE 版本时,我正在尝试向用户打印一条消息。为了测试它,我启用了文档模式 8。但是当我在 javascript 中询问文档模式时,我总是收到“怪癖模式:5”

 document.documentMode;

有人知道为什么吗?

这是我的规范的开始:

<!doctype html>
<html>
 <head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
   <meta http-equiv="content-type" content="text/html; charset=UTF-8">
   ...

已解决:

尽管如此,我还是使用了用户代理并检查了仅在 IE8 中显示的“trident/4.0”标签

【问题讨论】:

  • 如果感觉标记无效,IE 不切换到怪癖模式吗?
  • @GungFoo — 不。它只关心 Doctype 和 X-UA-Compatible。
  • 你指定了什么DocType?
  • 更新了文档类型规范

标签: javascript document mode


【解决方案1】:

有几件事可以迫使 IE 进入 QuirksMode,最明显的两件事是

  1. 缺少、格式错误或过时的 Doctype 参见 table near the bottom of this page for a comprehensive guide to which doctypes will trigger quirksmode
  2. 页面上 DocType 之前的任何内容,IE 坚持 DocType 绝对是首先出现在文件中的内容,否则它假定没有 DocType 并恢复为 QuirksMode

【讨论】:

    【解决方案2】:

    在您的页面头部部分使用此元标记...

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    

    它将最终确定您的文档模式。

    【讨论】:

    • 如果您担心如果用户访问您的站点低于 IE8 版本时会显示一条消息,那么请使用最聪明的方式,例如用户代理。每个浏览器都有唯一的用户代理字符串,因此根据用户代理字符串显示您的消息。我认为查找和完成文档模式更容易。
    • @Simon 提到的两点也是正确的。因此,请从您的页面源中验证它。否则我没有发现设置有任何问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2012-03-20
    相关资源
    最近更新 更多