我正在为一个在所有内部网站点上强制兼容模式的客户端工作。我想知道是否有一个标签,我可以把我的HTML强制兼容性模式关闭。


当前回答

插入 作为标签下的第一件物品。

这将迫使IE在IE的物理版本中呈现页面,并忽略浏览器的“模式设置”。这可以在开发人员工具中设置,尝试将其更改为旧版本的IE进行测试,这应该被忽略,页面应该看起来完全相同。

其他回答

元标签解决方案并不适合我们,但在响应头中设置它却可以:

header('X-UA-Compatible: IE=edge,chrome=1');

我相信这能达到目的:

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

插入 作为标签下的第一件物品。

这将迫使IE在IE的物理版本中呈现页面,并忽略浏览器的“模式设置”。这可以在开发人员工具中设置,尝试将其更改为旧版本的IE进行测试,这应该被忽略,页面应该看起来完全相同。

有“边缘”模式。

<html>
   <head>
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <title>My Web Page</title>
   </head>
   <body>
      <p>Content goes here.</p>
   </body>
</html>

从链接的MSDN页面:

Edge模式告诉Windows Internet Explorer以最高可用模式显示内容,这实际上打破了“锁定”模式。在IE8中,这相当于IE8模式。如果(假设)未来的ie版本支持更高的兼容性模式,设置为Edge模式的页面将以该版本支持的最高模式显示;然而,当使用IE8浏览时,这些页面仍然会以IE8模式显示。

但是,在生产使用中不鼓励使用“edge”模式:

建议Web开发人员将Edge模式的使用限制在测试页面和其他非生产用途上,因为在Windows Internet Explorer的未来版本中呈现页面内容可能会出现意想不到的结果。

说实话,我不完全明白为什么。但根据这一点,目前最好的方法是使用IE=8。

在回答相关问题时,建议在Web中设置“边缘”模式。配置文件。这将使它适用于从应用程序返回的所有HTML,而不需要将它插入到单个页面:

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

同样的步骤也可以通过使用IIS管理器为IIS服务器、整个网站或特定应用程序修改“HTTP响应头”来完成。