3

我的 HTML 页面中有如下标题,我在 IE8 中打开此站点。当我在“Web Developer”中查看它时,“如果 IE 7”处于活动状态。WebBrowser 在“IE8 Compact VIew”上设置 BrowserMode,在“IE7 标准”上设置“Document Mode”。我在网站上有 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]-->
4

3 回答 3

8

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

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

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


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

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

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

于 2011-10-13T13:01:33.497 回答
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-Compatible 的参考:http: //msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

于 2011-10-13T12:45:43.973 回答
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" >
于 2011-10-13T12:44:58.497 回答