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

Internet explorer 如何在IE中禁用兼容性视图,internet-explorer,internet-explorer-8,internet-explorer-9,x-ua-compatible,ie-compatibility-mode,Internet Explorer,Internet Explorer 8,Internet Explorer 9,X Ua Compatible,Ie Compatibility Mode,我想知道你如何阻止使用IE8的人进入兼容模式 我发现了这个标签,我想这会迫使人们保持IE-8模式,但我不太确定,无法检查,因为我有IE 9 如果人们处于IE9模式,我会强制他们不要进入IE8或IE7兼容模式 我试着把上面这一行放在我的代码中,然后转到IE 9->Tools->Compatibility View(灰色显示) 但是“兼容性视图设置”并没有变灰,看起来您可以通过它添加站点 因此,这是否应该禁用?向页面添加标记不会控制Internet控制面板(选择工具->选项时出现的对话框)中的U

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


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

如果人们处于IE9模式,我会强制他们不要进入IE8或IE7兼容模式

我试着把上面这一行放在我的代码中,然后转到IE 9->Tools->Compatibility View(灰色显示)

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


因此,这是否应该禁用?

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

查看讨论过的兼容模式以及如何为您的站点关闭它。


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

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

javascript:alert(navigator.userAgent) 

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

您只需在IE中强制禁用C.M.-只需粘贴此代码(在IE9和C.M.下将禁用):



来源:

如果您使用的是ASP.NET MVC,我发现
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
@code
响应.AddHeader(“X-UA-Compatible”,“IE=edge,chrome=1”)
结束代码
其他一切

这应足以迫使
IE
用户在任何
IE
版本中放弃兼容模式:


但是,有几点需要注意:

  • 上面的元标记应作为
    下的第一个标记包含在内。只有
    标签可以放在其上方
如果不这样做,您将在
IE9
Dev Tools上得到一个错误:
X-UA-Compatible元标记被忽略,因为文档模式已经完成。

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

  • 从IE11开始,边缘模式是首选的文档模式。要支持/启用该功能,请使用HTML5文档类型声明

  • 如果需要在
    IE7
    上支持webfonts,请确保使用
    。我对它进行了测试,发现当使用
    时,在
    IE7
    上呈现webfonts非常不可靠

谷歌Chrome框架的使用很受欢迎,但不幸的是,它将在2014年1月的某个时候被放弃


广泛的相关信息。使用它作为第一个meta标记的技巧在前面提到的源代码上,该源代码已经更新。

在JSF中,我使用了:


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

这需要启用
mod_头
mod_setenif
模块


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

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


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


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

@Sparky672-是的,我有。我不支持IE7,显示浏览器已过时警告。我在可用性研究中发现,大多数人并没有透露他们可能处于兼容模式(实际上并不知道他们是否设置了兼容模式),当你告诉他们他们的浏览器已经过时,他们认为他们正在使用IE 8(研究时最新的浏览器)时,他们很快就会感到困惑。最好的解决方案是强迫他们回到IE8/9(他们可能认为他们无论如何都在运行)如果他们使用IE9会发生什么?这会将他们设置为IE8吗?如果用户在IE9中使用它,它将以IE8标准模式显示。您还可以使用IE9中的F12开发者工具栏进行验证。如果该站点托管在Microsoft认为是“Intranet”的站点上,则更好地使用它,它仍将显示在兼容性视图中。唯一的替代方法是取消选中“工具-兼容性视图设置”中的“在兼容性视图中显示Intranet站点”复选框。IE8+中的默认设置真的很糟糕,我支持。刚刚被“在兼容性视图中显示Intranet站点”的默认设置(在我的例子中是IE9)打断了。我选中了“在兼容性视图中显示Intranet站点”,但X-UA-Compatible元标记似乎覆盖了它。这让我节省了Twitter引导和IE兼容性。仅供参考-这需要是第一个元标记。这不是和相同吗?注意不要在此标记之前使用任何条件注释。否则就不行了!在那里找到了提示:
BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE