77

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

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

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

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

我试图将上面的行放在我的代码中并转到 IE 9 -> 工具 -> 兼容性视图(灰色)

但是“兼容性视图设置”没有变灰,看来您可以通过那里添加站点。

那不应该禁用吗?

4

8 回答 8

91

您只需要在 IE 中强制禁用 CM - 只需粘贴此代码(在 IE9 和 cm 下将被禁用):

<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

于 2012-04-28T17:18:09.653 回答
74

这应该足以迫使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.

  • 如果您希望此标记验证,请确保您记得使用 a而不是仅关闭meta标记。/>>

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

  • 如果您需要在 上支持 webfonts IE7,请确保使用<!DOCTYPE html>. 我已经对其进行了测试,发现IE7在使用<!doctype html>.

Google Chrome Frame 的使用很流行,但不幸的是,它将于 2014 年 1 月这个月的某个时候被放弃。

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

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

于 2014-01-14T14:15:07.533 回答
50
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

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

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

javascript:alert(navigator.userAgent) 

如果您在字符串中看到 IE7,则它正在以兼容模式加载,否则不是。

于 2011-06-15T03:25:39.417 回答
9

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

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else
于 2012-12-19T15:09:41.343 回答
5

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

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

我将它作为代码中的第一个“元”标签。我添加了 10 和 11,因为它们是现在为 Internet Explorer 发布的版本。

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

于 2014-11-17T19:37:51.220 回答
3

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

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

这要求您启用mod_headers和模块。mod_setenvif

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

于 2014-07-18T10:26:32.450 回答
1

在 JSF 中,我使用了:

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

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

</h:head>
于 2014-07-04T13:22:44.237 回答
0

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

查看MSDN 上的此文档,其中讨论了兼容模式以及如何为您的站点关闭它。

于 2011-06-14T19:45:01.903 回答