Internet explorer X-UA-Compatible设置为IE=edge,但它仍然不';t停止兼容模式

Internet explorer X-UA-Compatible设置为IE=edge,但它仍然不';t停止兼容模式,internet-explorer,ie8-compatibility-mode,x-ua-compatible,Internet Explorer,Ie8 Compatibility Mode,X Ua Compatible,我很困惑。我应该可以设置 IE8和IE9应该使用最新的呈现引擎呈现页面。然而,我刚刚测试了它,如果在我们网站的其他地方打开了兼容模式,它将保持一段时间,即使我们应该强制它不要这样做 您如何确保IE不使用兼容模式(即使在内部网中) FWIW,我正在使用HTML5 DocType声明() 以下是本页的前几行: 编辑:IE8上的默认设置是对intranet站点使用IE7兼容模式。这会覆盖X-UA-Compatible元标记吗?事实证明,这与使所有intranet站点强制进入兼容模式有关,即使X

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


IE8和IE9应该使用最新的呈现引擎呈现页面。然而,我刚刚测试了它,如果在我们网站的其他地方打开了兼容模式,它将保持一段时间,即使我们应该强制它不要这样做

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

FWIW,我正在使用HTML5 DocType声明(

以下是本页的前几行:



编辑:IE8上的默认设置是对intranet站点使用IE7兼容模式。这会覆盖X-UA-Compatible元标记吗?

事实证明,这与使所有intranet站点强制进入兼容模式有关,即使
X-UA-Compatible
设置为
IE=edge

如果需要覆盖IE对intranet站点的兼容性视图设置,您可以在web.config(IIS7)中这样做或通过网站属性(IIS6)中的,并在那里设置X-UA-Compatible。meta标记不会在兼容性视图设置中覆盖IE的intranet设置,但如果在宿主服务器上设置meta标记,它将覆盖兼容性

IIS7中的web.config示例:


编辑:我删除了
添加
之前的
清除
代码;复制和粘贴是不必要的疏忽。评论员们,好球

服务器端解决方案是推荐的解决方案,正如@TimmyFranks在他的回答中所建议的那样,但是如果需要在页面级别实施
X-UA-Compatible
规则,请阅读以下提示,以从已经被烧伤者的经验中获益


X-UA-Compatible
meta标记必须直接出现在
元素中标题的后面。在此之前不能放置其他元标记、css链接和js脚本调用

<head>
    <title>Site Title</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta charset="utf-8">
    <script type="text/javascript" src="/jsFile.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
    <link rel="shortcut icon" href="/apple-touch-icon.png" />
</head>

网站名称
如果页面中有任何条件注释(比如位于
中),则必须将其放在
之后的下方

//不要:将类放在HTML标记中
//DO:将类放置在BODY标记内
Html5BoilerPlate的团队写下了这个bug- 他们有几种解决方案

关于Intranet&Compatibility view,当您转到tools>Compatibility view settings(工具>兼容性视图设置)时,会有一些设置


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

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

请注意,如果您是从PHP提供服务,也可以使用以下代码来修复它

header("X-UA-Compatible: IE=Edge");

正如NEOSWF在上面指出的那样,Paul Irish条件注释阻止元标记产生任何影响

这里有几个修复程序()

这些措施包括:

添加两个HTML类,使用服务器头并在doctype上方添加条件注释

在我的最新项目中,我决定删除Paul Irish的有条件评论。我不喜欢在html之前添加任何东西而不首先进行大量测试的想法,通过查看html就可以看到设置了什么,这很好

最后,我在正文后面加了一个div,并使用了条件注释,例如

  <!--[if IE 7]><div class="ie7"><!--<![endif]-->
  ... regular body stuff
  <!--[if IE 7]></div><!--<![endif]-->

... 普通的身体材料
我可以在身体周围这样做,但是像Wordpress这样的CMS更难

显然,这是标记中的另一个DIV,但它仅适用于较旧的浏览器

但我认为这可能是基于每个项目的决定

我还读过一些关于字符集meta标记需要在前1024个字节中出现的内容,这样可以确保


有时候,最简单、最容易阅读的想法就是最好的,它绝对值得思考!感谢上面链接上的第6条评论指出了这一点。

在尝试了许多组合后,我也遇到了同样的问题,这一点很有效 注意:我已经检查了内部网的兼容性

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<head runat="server">

如果您正在使用LAMP stack,请将其添加到web根文件夹中的.htaccess文件中。无需将其添加到每个PHP文件中

<IfModule mod_headers.c>
    Header add X-UA-Compatible "IE=Edge"
</IfModule>

标题添加与X-UA兼容的“IE=Edge”

即使您取消选中了“在兼容性视图中显示intranet站点”选项,并在响应标题中显示了X-UA-Compatible,您的浏览器仍可能默认为“兼容性视图”的另一个原因是您的组策略。查看您的控制台以获取以下消息:

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

其中xxx.xxx是您站点的域(即test.com)。如果您看到这一点,则会设置域的组策略,以便以test.com结尾的任何站点都将自动以兼容模式呈现,而不管doctype、header等


有关更多信息,请参见以下链接(解释html代码):

我在本地主机的IE7文档标准中也遇到了同样的IE9呈现问题。 我尝试了很多有条件的评论标签,但都没有成功。 最后,我删除了所有的条件标记,并在head之后立即添加了meta标记,就像下面一样,效果很好

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


希望它有帮助

X-UA-Compatible
将只覆盖文档模式,而不是浏览器模式,并且不会适用于所有intranet站点;如果是您的情况,最好的解决方案是禁用“在兼容性视图中显示intranet站点”,并指定哪些intranet站点需要兼容模式。

我在我的htaccess文件中添加了以下内容,这就成功了:

BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
<meta http-equiv="X-UA-Compatible" content="IE=edge" />  
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
</head>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta charset="utf-8">
    <title>Site Title</title>
    <!-- other tags -->
</head>
<?php 
header( 'X-UA-Compatible: IE=edge,chrome=1' );
header( 'content: width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' );
include('ix.html');
?> 
add_header "X-UA-Compatible" "IE=Edge,chrome=1";
HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\EnterpriseMode