如何在IE中禁用兼容性视图

时间:2011-06-14 19:29:44

标签: internet-explorer internet-explorer-8 internet-explorer-9 x-ua-compatible ie-compatibility-mode

我想知道如何阻止使用IE 8的用户进入兼容模式?

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

我找到了这个标签,我认为这迫使人们保持IE-8模式,但我不太确定,因为我有IE 9而无法检查。

如果人们处于IE 9模式,我强迫他们不进入IE 8或IE 7兼容模式?

我尝试将上面的代码放在我的代码中并转到IE 9 - &gt;工具 - &gt;兼容性视图(灰显)

但“兼容性视图设置”并未显示为灰色,似乎您可以通过此处添加该网站。

那么不应该禁用吗?

8 个答案:

答案 0 :(得分:91)

你需要的只是强制禁用C.M.在IE中 - 只需粘贴此代码(在IE9和c.m.下将被禁用):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

来源:http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html

答案 1 :(得分:68)

这足以迫使IE用户在任何IE版本中删除兼容模式:

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

然而,有一些需要注意的警告:

  • 上面的元标记应包含在 <head> 下的第一个标记中。只有<title>标记可以放在它上面。

如果你不这样做,你会在IE9开发工具上遇到错误:X-UA-Compatible META tag ignored because document mode is already finalized.

  • 如果您希望此标记验证,请务必记得使用meta关闭/>标记,而不只是>

  • IE11开始,边缘模式是首选的文档模式。要支持/启用它,请使用HTML5文档类型声明<!doctype html>

  • 如果您需要在IE7上支持网络字体,请务必使用<!DOCTYPE html>。我已对其进行了测试,发现使用IE7时,<!doctype html>上的网页字体渲染非常不可靠。

谷歌Chrome Frame的使用很受欢迎,但不幸的是,它将在本月,2014年1月的某个时候被删除。

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

广泛的相关信息here。使用它作为第一个元标记的提示位于前面提到的源here上,该源已更新。

答案 2 :(得分:49)

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

应该强制您的页面以IE8标准呈现。用户可以将站点添加到兼容性列表中,但此标记优先。

检查的一种快速方法是加载页面并在地址栏中输入以下内容:

javascript:alert(navigator.userAgent) 

如果在字符串中看到IE7,则在兼容模式下加载,否则不加载。

答案 3 :(得分:9)

如果你正在使用ASP.NET MVC,我在_Layout的代码块中发现Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")可以很好地工作:

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else

答案 4 :(得分:5)

FelixFett给出的答案对我有用。重申:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />

我把它作为第一个&#39; meta&#39;在我的代码中标记。我添加了10和11,因为这些是现在为Internet Explorer发布的版本。

我会对他的回答发表评论,但我没有足够高的声誉......

答案 5 :(得分:2)

在Apache中实现此目的的另一种方法是将.htaccess中的以下行放在您网站的根文件夹中(或Apache的配置文件中)。

BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE

这要求您启用mod_headersmod_setenvif模块。

额外的HTTP标头只会被发送到IE浏览器,而不会发送给其他浏览器。

答案 6 :(得分:1)

在JSF中我用过:

<h:head>
    <f:facet name="first">
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    </f:facet>

    <!-- ... other meta tags ... -->

</h:head>

答案 7 :(得分:0)

在页面中添加标记不会控制Internet控制面板中的UI(选择“工具” - >“选项”时出现的对话框)。如果您正在查看可能是google.com,msn.com,about:blank或example.com的主页,则Internet控制面板无法知道您网页的内容可能是什么,也无法下载它在后台。

查看this document on MSDN,其中讨论了兼容模式以及如何为您的网站关闭它。