我很困惑。我应该可以设置

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

IE8和IE9应该使用最新的渲染引擎来渲染页面。但是,我刚刚测试了它,如果兼容性模式在我们网站的其他地方被打开,它将为我们的页面保持,即使我们应该强制它不这样做。

你应该如何确保IE不使用兼容模式(即使在内部网中)?

FWIW,我使用HTML5 DocType声明(<!doctype html >)。

以下是这一页的前几行:

<!doctype html> 
<!--[if lt IE 7 ]> <html lang="en" class="innerpage no-js ie6"> <![endif]--> 
<!--[if IE 7 ]>    <html lang="en" class="innerpage no-js ie7"> <![endif]--> 
<!--[if IE 8 ]>    <html lang="en" class="innerpage no-js ie8"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> 
<html lang="en" class="innerpage no-js"> 
<!--<![endif]--> 
    <head> 
        <meta charset="ISO-8859-1" /> 
        <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

编辑:我刚刚了解到,IE8的默认设置是内网站点使用IE7兼容模式。这会覆盖x - ua compatible元标记吗?


当前回答

即使你没有勾选“在兼容性视图中显示intranet站点”选项,并且在你的响应头中有X-UA-Compatible,还有另一个原因为什么你的浏览器可能默认为“兼容性视图”——你的组策略。查看控制台,查看以下消息:

HTML1203: xxx。xxx已配置为通过组策略在兼容性视图中运行。

xxx。XXX是您网站(即test.com)的域名。如果您看到此情况,则您域的组策略已设置,以便任何以test.com结尾的站点将自动以兼容模式呈现,而不管文档类型、标题等。

欲了解更多信息,请参阅以下链接(解释html代码):http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx

其他回答

我在IE11中遇到了同样的问题。这些答案都没有解决我的问题。在深入研究之后,我注意到浏览器是在企业模式下运行的。(通过点击F12并单击仿真选项卡进行验证,寻找浏览器配置文件下拉菜单)设置被锁定,不允许我更改设置。

在删除以下注册表项中的CurrentVersion后,我能够将配置文件更改为Desktop:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\EnterpriseMode

在将模式更改为桌面后,这篇文章上的答案将起作用。

对于Nginx,

add_header "X-UA-Compatible" "IE=Edge,chrome=1";

参考:https://github.com/h5bp/server-configs/commit/a5b0a8f736d68f7de27cdcb202e32975a74bd2c5

事实证明,这与微软的“智能”选择有关,即使所有内部网站点强制进入兼容模式,即使X-UA-Compatible设置为IE=edge。

蒂米·弗兰克斯很适合我。我们今天遇到了一个问题,客户在公司范围内使用IE8,这迫使我们为他们的内部网编写的网站进入兼容模式。设置“IE-Edge”似乎可以解决这个问题。

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=Edge" />
  </customHeaders>
</httpProtocol>

我也在本地主机的IE7文档标准中得到了相同的IE9渲染问题。 我尝试了许多条件注释标签,但不成功。 最后,我只是删除了所有的条件标签,只是在头部之后立即添加了元标签,就像下面这样,它就像魅力一样。

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

希望能有所帮助