196

我刚刚安装了 IE9 beta 并且在我创建的特定站点 (HTML5) 上,IE9 会跳转到兼容模式,除非我手动告诉它不要这样做。我尝试删除网站的几个部分,但没有任何变化。包括删除所有 CSS 包含。在我的其他网站上,一切正常。

另外,不要手动设置,因为这样 IE9 会记住用户设置并且您无法将其转回自动(或者至少我还没有找到方法,甚至没有通过隐私浏览和清空缓存)

反正。跳转到兼容模式的站点:http: //alliancesatwar.com/guide/
一个正确呈现的站点:http: //geuze.name/basement/(我不能发布超过 1 个超链接)

两者都使用相同doctype和全部。这些网站有很多共同点(除了外观)使用相同的基本模板(编码、元标记、文档类型和相同的 javascript)

如果有人能回答我,那就太好了!一个在 IE7 模式下呈现的 HTML5 网站是相当...蹩脚的。

4

8 回答 8

263

适用于我的 IE9 文档模式。

如果没有X-UA-Compatible标头/元来设置显式 documentMode,您将获得基于以下内容的模式:

  • 用户之前是否点击过该域中的“兼容性视图”按钮;
  • 也许这是否是由于网站上的其他一些内容导致 IE8/9 的渲染器崩溃并回退到旧的渲染器而自动发生的;
  • 用户是否选择默认将所有站点置于兼容性视图中;
  • IE 是否认为该站点在您的 Intranet 上,因此默认为兼容性视图;
  • 有问题的网站是否在 Microsoft 自己的需要兼容性视图的网站列表中。

您可以从 IE 菜单的“工具 -> 兼容性视图设置”中更改这些设置。当然,该菜单现在被偷偷地隐藏了,所以在你按下 Alt 之前你不会看到它。

作为网站作者,如果您确信您的网站符合标准(在其他浏览器中呈现良好,并使用功能嗅探来决定使用哪些浏览器解决方法),我建议使用:

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

或 HTTP 标头:

X-UA-Compatible: IE=Edge

获取最新的渲染器,无论使用什么 IE 版本。

于 2010-09-16T12:25:33.037 回答
33

我放

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

之后的第一件事

<head>

(我在某处读过,我不记得了)

我简直不敢相信它确实有效!

于 2011-03-17T15:41:50.743 回答
21

要强制 IE 以 IE9 标准模式呈现,您应该使用

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

某些情况可能会导致 IE9 跳入兼容模式。默认情况下,这可能发生在 Intranet 站点上。

于 2010-09-16T12:00:15.657 回答
6

我已在单独的 StackOverflow 线程上发布了此评论,但认为值得在这里重复:

对于我们内部的 ASP.Net 应用程序,在网页、web.config 或代码隐藏中添加“X-UA-Compatible”标签完全没有区别。

唯一对我们有用的是在 IE8 中手动关闭此设置:

在此处输入图像描述

(叹。)

这个问题似乎只发生在 Intranet 站点上的 IE8 和 IE9 上。外部网站可以正常工作并使用正确版本的 IE8/9,但对于内部网站,IE9 突然确定它实际上是 IE7,并且不支持任何 HTML 5。

不,我也不太明白这个逻辑。

我不情愿的解决方案是测试浏览器是否支持 HTML 5(通过创建画布并测试它是否有效),如果无效则向用户显示此消息:

在此处输入图像描述

它不是特别用户友好,但让用户关闭这个烦人的设置似乎是让他们正确运行内部 HTML 5 Web 应用程序的唯一方法。

或者让用户使用 Chrome。;-)

于 2014-02-13T09:27:25.127 回答
1

顺便说一句,在更现代的网站上,如果您根据样板文件在 html 标记上使用条件语句,这将由于某种原因导致 ie9 默认为兼容模式。此处的解决方法是将条件语句从 html 标记中移出,并将它们添加到 body 标记中,即从 head 部分中移出。这样,您仍然可以在样式表中使用这些类来定位较旧的浏览器。

于 2015-02-25T13:41:12.020 回答
1

http://www.HTML-5.com/index.html上的站点确实具有 X-UA-Compatible 元标记,但仍会进入兼容性视图,如地址栏中的“破损页面”图标所示。如何获得强制 IE 9(最终版本 9.0.8112.16421)以标准模式呈现页面的菜单选项?我尝试右键单击该撕裂的页面图标以及“Alt”键技巧以显示 Rene Geuze 提到的其他菜单选项,但这些都不起作用。

于 2011-03-18T19:33:01.917 回答
0

我最近不得不解决这个问题,这就是我所做的:

首先,这个解决方案是围绕调整 Apache 服务器。

第二个主要想法是 IE9 中有一个错误,这意味着元标记不起作用,而不是这个解决方案试试这个

  • 找到/打开你的 httpd.conf
  • 取消注释/或添加以下行

    LoadModule headers_module modules/mod_headers.so
    
  • 添加以下行

    <IfModule headers_module>
        Header set X-UA-Compatible: IE=EmulateIE8
    </IfModule>
    
  • 保存/重新启动您的 Apache 服务器,

  • 使用 IE9 浏览到您的页面,使用诸如wiresharkfiddler之类的工具或使用 IE 开发人员工具检查标题是否存在
于 2012-11-30T14:56:13.407 回答
0

在我看来很好:

替代文字

你确定你没有设置全局或其他什么?这是 Windows 7 上测试版的全新安装。开发人员工具报告该页面默认为 IE9 标准模式。

于 2010-09-16T12:07:17.940 回答