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

cho*_*bo2 74 internet-explorer internet-explorer-8 internet-explorer-9 ie-compatibility-mode x-ua-compatible

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

<meta http-equiv="X-UA-Compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud)

我发现这个标签,我认为这迫使人们保持IE-8模式,但我不太确定,不能检查,因为我有IE 9.

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

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

但"兼容性视图设置"并未显示为灰色,似乎您可以通过那里添加该网站.

所以不应该禁用?

小智 91

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

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
Run Code Online (Sandbox Code Playgroud)

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

  • 这与<meta http-equiv ="X-UA-Compatible"content ="IE = edge"/>不一样吗? (11认同)
  • 注意不要在此标记之前使用任何条件注释.否则它不起作用!在那里找到了提示:http://stackoverflow.com/questions/3449286/force-ie-compatibility-mode-off-in-ie-using-tags#comment26890406_3449338 (4认同)
  • 这为我节省了Twitter Bootstrap和IE兼容性.仅供参考 - 这需要是FIRST元标记. (3认同)

Wal*_*rée 69

这应该足以强制IE用户在任何IE版本中删除兼容模式:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
Run Code Online (Sandbox Code Playgroud)

但是,有一些需要注意的警告:

  • 上面的元标记应作为第一个标记<head>包含在其中.只有<title>标签可以放在它上面.

如果您不这样做,您将在IE9Dev Tools 上收到错误:X-UA-Compatible META tag ignored because document mode is already finalized.

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

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

  • 如果您需要支持webfonts IE7,请确保使用<!DOCTYPE html>.我测试了它,发现IE7在使用时渲染webfonts 非常不可靠<!doctype html>.

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

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1">
Run Code Online (Sandbox Code Playgroud)

这里有广泛的相关信息.使用它作为第一个元标记的提示在此处提到的源上,已更新.


小智 49

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 
Run Code Online (Sandbox Code Playgroud)

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

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

javascript:alert(navigator.userAgent) 
Run Code Online (Sandbox Code Playgroud)

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

  • 更好地使用<meta http-equiv ="X-UA-Compatible"content ="IE = edge"/>此外,如果网站托管在微软认为是"内联网"的东西上,你就会被搞砸,它仍会显示在兼容性中视图.只有覆盖它的方法是取消选中工具 - 兼容性视图设置中的"在兼容性视图中显示Intranet站点"复选框.IE8 +中的默认设置确实很糟糕. (92认同)
  • 我同意那个.刚刚通过"兼容性视图中的显示Intranet站点"默认设置(在我的情况下在IE9中)得到了一点. (5认同)
  • 我选中了"在兼容性视图中显示Intranet站点",但X-UA兼容的元标记似乎覆盖了它. (4认同)
  • 如果他们使用IE 9将它们设置为IE 8会发生什么? (2认同)

小智 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
Run Code Online (Sandbox Code Playgroud)


小智 5

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

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
Run Code Online (Sandbox Code Playgroud)

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

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