html - 使用标签强制IE兼容模式关闭




internet-explorer (10)

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


Answers

这是由于IE兼容性设置中的设置导致所有Intranet站点都应以兼容模式运行。 你可以通过组策略来解决这个问题(或者只是简单地在IE中删除它),或者你可以设置以下内容:

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

显然,不能将兼容性视图设置作为组策略进行更改,但它可能在注册表中可能会更改,此元标记适用于我,我必须将所需的属性作为html表单的一部分工作,它在Chrome和Firefox中工作,但不是IE。

这是一个很好的视觉浏览器支持每个单独的HTML 5元素。

http://html5readiness.com/

注意一个共同点,谷歌浏览器,它支持一切。 希望这有帮助


经过许多小时的故障排除之后......以下是一些快速突出显示,它们可以帮助我们从X-UA-Compatible文档中获得帮助: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16 : http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16 VS.85) http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16

使用<meta http-equiv="X-UA-Compatible" content=" _______ " />

  • 标准用户代理模式(非模拟用户 )忽略页面中的<!DOCTYPE>指令,并基于该版本IE支持的标准进行渲染(例如, IE=8将更好地遵守表格边界间距和一些伪选择器IE=7 )。

  • Emulate模式告诉IE遵循页面中的任何<!DOCTYPE>指令,根据您选择的版本和基于IE=5怪癖模式呈现标准模式

  • content属性的可能值为:

    content="IE=5"

    content="IE=7"

    content="IE=EmulateIE7"

    content="IE=8"

    content="IE=EmulateIE8"

    content="IE=9"

    content="IE=EmulateIE9"

    content="IE=edge"


如果您在Intranet区域使用页面,则无论您做什么,您都可能会发现IE9正在进入IE7 Compat模式。

这是由于IE兼容性设置中的设置导致所有Intranet站点都应以兼容模式运行。 你可以通过组策略来解决这个问题(或者只是简单地在IE中删除它),或者你可以设置以下内容:

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

这可以工作(详见其他答案),但最初可能不会出现如此: 它需要在声明样式表之前提供 。 如果你不这样做,它会被忽略。


如果您有权访问服务器,那么执行此操作的最可靠方法是在服务器本身的IIS中执行此操作。 进入IIS HTTP响应头。 添加名称:X-UA兼容
值:IE =边缘这将覆盖您的浏览器和您的代码。


IE8默认为intERnet的标准模式和intRAnet的quirks模式。 如果将doctype设置为xhtml transitional,则会忽略HTML元标记。 解决方案是在代码中添加HTTP标头。 这对我们有效。 现在我们的Intranet站点迫使IE8在标准模式下呈现应用程序。

添加到基页面类(ASP.net C#)的PageInit中:Response.AddHeader(“X-UA兼容”,“IE = EmulateIE8”);

参考: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html : http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html


插入标签下的第一项。

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


我相信这会做到这一点:

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

正如在相关问题的answer所建议的,可以在Web.Config文件中设置“边缘”模式。 这将使其适用于从应用程序返回的所有HTML,而无需将其插入到单个页面中:

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

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


有“边缘”模式

<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页面:

边缘模式告诉Windows Internet Explorer以可用的最高模式显示内容,这实际上打破了“锁定”范例。 使用Internet Explorer 8,这相当于IE8模式。 如果(假设的)未来版本的Internet Explorer支持更高的兼容模式,则设置为边缘模式的页面将以该版本支持的最高模式显示; 但是,使用Internet Explorer 8查看时,这些相同的页面仍将以IE8模式显示。

但是,在生产中不鼓励“边缘”模式:

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

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


我可以通过在头部指定元标记作为第一个标记来覆盖兼容模式,而不仅仅是第一个元标记,而且仅作为非常好的标记

感谢@ stefan.s让我在你的出色答案中给予它。 在阅读之前我有:

这不是工作

<head> 
<link rel="stylesheet" type="text/css" href="/qmuat/plugins/editors/jckeditor/typography/typography.php"/>
<meta http-equiv="x-ua-compatible" content="IE=9" >

移动链接标签,并且它工作

这工作

<head><meta http-equiv="x-ua-compatible" content="IE=9" >

因此,设置为使用兼容性的IE8客户端会将该页面呈现为IE8标准模式 - 内容='IE = 9'意味着使用包括IE9在内的最高标准。







html internet-explorer