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

<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元标记吗?


当前回答

IE 11不再允许你通过发送头文件来覆盖浏览器兼容性视图设置…

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

强制浏览器不使用兼容性视图的唯一方法似乎是让用户在浏览器中禁用它。我们的网站是内网网站,IE默认选项是为内网网站使用兼容性视图。真痛苦!

我们能够防止用户更改IE 9和10的浏览器设置,但它不再适用于IE 11。我们的IE用户正在切换到Chrome,这不是问题,从来都不是问题。

其他回答

如果你需要覆盖IE的内部网站点的兼容性视图设置,你可以在web上这样做。config (IIS7)或通过网站属性(IIS6)中的自定义HTTP头,并在那里设置X-UA-Compatible。元标签不会在兼容性视图设置中覆盖IE的内部网设置,但如果你在主机服务器上设置它,它会覆盖兼容性。

web示例。IIS7中的配置:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=EmulateIE8" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

编辑:我从添加之前删除了清晰的代码;这是不必要的复制粘贴的疏忽。抓得好,评论们!

我能够绕过这个加载头之前的HTML与php,它工作得很好。

<?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');
?> 

ix.html是我在发送报头后想要加载的内容。

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

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

希望能有所帮助

当浏览器打开兼容模式时,即使您从web浏览器和本地组策略编辑器中删除并关闭所有兼容模式配置,您也可以尝试从注册键中禁用。

这也发生在我使用域和子域连接服务器端。机器被限制在兼容模式下为所有子域打开。

禁用内网兼容模式

HKEY_LOCAL_MACHINE - SOFTWARE - Policies - Microsoft - Internet Explorer - BrowserEmulation -> IntranetCompalityMode Value为0(0)。并从策略列表中删除现有域名。

否则,您可以添加一个包含0(零)值数据的新值(DWORD)。

我添加了以下到我的htaccess文件,它做到了戏法:

BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie