【问题标题】:page opens in IE7 document mode instead of IE9页面以 IE7 文档模式而不是 IE9 打开
【发布时间】:2013-03-25 13:49:17
【问题描述】:

我知道这里有人问过这个问题的许多变体,但到目前为止,我没有尝试过适合我的解决方案。

我希望我的网络应用程序在 IE 中以 IE9 文档模式打开。当我现在打开页面时,它总是在“Internet Explorer7 标准”中打开,而“Internet Explorer9 标准”被列为默认页面。 我尝试了几种标签的变体,包括

<meta http-equiv="X-UA-Compatible" value="IE=Edge">

<meta http-equiv="X-UA-Compatible" content="IE=7,IE=9">

(都在 head 标签之后)

我也尝试过条件语句,例如 S.O. 中的这个例子:

<!--[if IE 7 ]> <body class="ie7> <![endif]-->
<!--[if IE 8 ]> <body class="ie8> <![endif]-->
<!--[if gt IE 8]><!--><body><!--<![endif]-->

目前我正在使用:&lt;!DOCTYPE html&gt;

当然我可以在F12手动切换模式,但是我想网站直接在IE9文档模式下打开(兼容模式总是默认IE9兼容模式)。

目前我正在做一个内网开发服务器;我读过这可能是一个因素?但我真的更喜欢客户端的任何解决方案,我可以添加到 JS/HTML .....

【问题讨论】:

  • 第一个应该做,但你缺少尖括号:&lt;meta http-equiv="X-UA-Compatible" value="IE=Edge"&gt;。另外,这个元素应该在&lt;head&gt;
  • 默认情况下,Intranet 站点以兼容模式呈现,最安全的解决方案通常是在服务器端完成。看看:stackoverflow.com/questions/2518256/…
  • 我意识到 不存在,并且两者都在我上面所说的 head 标签中
  • @Adrift..原谅我的无知,但我不确定你指的是哪个文件?我没有与我的应用程序直接关联的 web.config 文件(不使用 VS)...该应用程序从 Windows Server 2008r2 运行。

标签: javascript internet-explorer-9 meta-tags ie8-browser-mode ie-developer-tools


【解决方案1】:

开发者工具手动覆盖文档模式

如果 Internet Explorer 9 标准被列为页面默认值,这意味着您可能已通过工具手动将其更改为 Internet Explorer 7 标准。只需在 F12 开发人员工具本身中将其切换回 Internet Explorer 9 标准即可。

这些工具会记住您以另一种文档模式显示页面的明确请求,因此不会恢复为页面默认值。考虑 MSDN 中的以下内容:

当您首次加载网页时,F12 工具会确定默认的文档模式并选择合适的模式。括号中的Page default文字表示网页的默认模式。文档的当前模式旁边会出现一个复选标记。更改模式会导致网页刷新,并保持此模式,直到选择另一种模式或关闭浏览器。

Navigating the F12 Developer Tools Interface(强调原文)

如果您想确认此答案,请打开一个新的浏览器窗口并导航至http://stackoverflow.com。您应该在 F12 开发人员工具中注意到它以“标准”的文档模式(如果您使用的是 IE9,则为 IE9 标准)加载。

将 Stack Overflow 的文档模式切换为 IE7 标准并刷新浏览器。刷新后您会发现浏览器停留在 Document Mode: Internet Explorer 7 Standards,并将 Internet Explorer 9 Standards 列为(页面默认)。

兼容性视图设置

根据 MSDN 资源 How Internet Explorer Chooses Between Document Modes,唯一的其他潜在原因是兼容性视图设置。

在 Internet Explorer 9 中,单击工具,然后单击兼容性视图设置。您可以在此处找到 Intranet 站点的设置。在 Internet Explorer 10(桌面模式)中,您可能必须按 Alt 才能显示“工具”菜单项。

【讨论】:

  • 正如我所说,我确实使用了 模式,并添加了 标签。 ...每次我打开网站时,它都会以 IE7 文档模式打开...我可以手动更改它,但是当我再次打开 IE 时(不仅仅是刷新 IE)..页面作为 IE9 文档打开。抱歉,我不认为这是一个答案。
  • @JasonBK 如果工具覆盖默认文档模式,那么此时服务器不再相关。只需按 F12 即可显示工具,然后手动将文档模式切换回 Page Default(这是 Internet Explorer 9 标准,对吗?),您应该会很好。如果您关闭浏览器,然后再次打开它以找到 Internet Explorer 7 标准,则可能是兼容性视图设置正在控制,在这种情况下,您应该检查 Tools &gt; Compatibility View Settings 以查看您的设置。
  • 取消选中兼容性视图设置中的所有内容,并确保兼容性视图图标不是蓝色(地址栏右侧的撕纸)。在未选中这些项目且纸张为灰色的情况下,重新启动浏览器。再次打开浏览器时,纸张是蓝色的吗?文档模式是不是页面默认值?
  • 抱歉,我删除了我的最后一条评论 b/c 我意识到我实际上并没有尝试每一个组合......你是对的,撕破的纸现在是灰色的,我没有选中所有内容,看起来用IE9打开,谢谢!但是,对于我知道不想在他们的机器上进行任何设置更改的所有办公室间人员来说,这对我没有帮助;我仍然需要确保应用程序在办公室的任何计算机上都以这种模式打开...
  • @JasonBK 那是你无法控制的;此时,网络管理员负责确保浏览器将此 url 理解为兼容性视图模式的例外。首先,确保页面确实在 Compat View 中为其他所有人加载,并从那里向您的网络管理员发出请求,为每个人的 Internet Explorer 实例进行此更改。
【解决方案2】:

只需输入以下代码,您的 IE 浏览器就会默认以定义的兼容视图打开。

  <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"> 

如果您想将 IE8 设为默认兼容性视图,可以将“IE=EmulateIE9”更改为“IE=EmulateIE8”。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> 

【讨论】:

    【解决方案3】:

    你也可以放下面的代码示例。

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

    这将以默认浏览器模式加载您的应用程序。并特别确保将此元标记作为第一个标记包含在 head 标记之后。否则将无法正常工作。

    【讨论】:

    • 我原来的问题中有这个确切的标签。
    【解决方案4】:

    在我的情况下,问题是我的公司发行的笔记本电脑上应用了组策略,该策略明确设置了我用来在兼容模式下呈现的域。我通过查看 IE 控制台 (F12) 发现了这一点:

    我通过在我的机器上运行以下命令验证了这一点,该命令生成了我机器上应用组策略的报告:

    gpresult /h C:\gpresult.html
    

    报告中有这样一个部分,其中包括我正在处理的网站的根域:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 2013-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多