为什么IE8处于IE7模式。变量“IE”== 7

时间:2011-10-13 12:40:19

标签: internet-explorer internet-explorer-8 compatibility ie-compatibility-mode

我的HTML页面中的标题如下所示,我在IE8中打开此站点。 当我在“Web Developer”中查看时,“if IE 7”处于活动状态。 WebBrowser在“IE8 Compact VIew”上设置BrowserMode,在“IE7标准”上设置“文档模式”。 我在网站上有javascript,这对这些设置不起作用。 为什么会这样?为什么IE变量等于7?为什么浏览器处于这些模式?

<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="de" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="de" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="de" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="de" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="de" class="no-js"> <!--<![endif]-->

3 个答案:

答案 0 :(得分:8)

其他人建议使用X-UA-Compatible IE=8,但请注意,即使用户有IE9(或更高版本),这也会强制IE在IE8模式下运行。这通常不是你想要的。

最好指定IE应该使用最新的渲染引擎。为此,您使用相同的meta代码,但使用IE=edge作为值,而不是IE=8

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


请注意,IE有一个配置面板,允许您指定何时使用兼容模式。出于某种原因,默认设置是对“本地Intranet中的站点”使用兼容模式。

这是IE在您开发网站时意外进入兼容模式的最常见原因,因为您的localhost服务器将被视为“在本地Intranet中”。

您可以通过转到“工具”菜单并选择“兼容性视图设置”选项轻松更改此设置。

答案 1 :(得分:2)

MSDN博客上的这篇文章介绍了如何启用兼容模式。有一个很好的流程图:http://blogs.msdn.com/b/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx

要修复它,您还可以使用.htaccess文件或任何适合您的Web服务器的文件发送以下HTTP标头:

X-UA-Compatible: IE=8

以下是关于X-UA兼容的参考:http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

答案 2 :(得分:0)

您需要告诉IE该页面是否可以使用

尝试添加:

<!--Display in Native ie9 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=9" >
<!--Display in Native ie8 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=8" >
<!--Display in Native ie7 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=7" >