我在尝试禁用IE的兼容模式时遇到了大问题。无法使用Apache vhost配置禁用IE兼容模式配置
经过很多人的冲击之后,我将问题追溯到该站点是否被用作Apache的默认配置或作为虚拟主机。
我知道这是因为当我用'localhost'域访问网站时,一切都很好。只要我通过在虚拟主机中配置的域访问同一页面 - 站点将以兼容模式呈现。
任何人都可以请摆脱这个疯狂的问题?
将该网站作为默认主机不是一个选项。
- 院长
我在尝试禁用IE的兼容模式时遇到了大问题。无法使用Apache vhost配置禁用IE兼容模式配置
经过很多人的冲击之后,我将问题追溯到该站点是否被用作Apache的默认配置或作为虚拟主机。
我知道这是因为当我用'localhost'域访问网站时,一切都很好。只要我通过在虚拟主机中配置的域访问同一页面 - 站点将以兼容模式呈现。
任何人都可以请摆脱这个疯狂的问题?
将该网站作为默认主机不是一个选项。
啊,哈!
从here(重点煤矿):
大量的业务线,网站是:IE 7今天能。为了保持兼容性,Internet Explorer 8附带了基于区域评估的智能默认值。在默认状态下,公共Internet上的所有站点都以Internet Explorer 8标准模式(兼容性视图关闭)显示,并且所有Intranet网站都以Internet Explorer 7标准模式(兼容性视图开启)显示。
...
如果您导航到本地Intranet像http://myPortal和http://sharepoint/sites/mySite网站,Internet Explorer 8中识别自己与“7”,版本矢量的“7”的用户代理字符串,并显示网页在Internet Explorer 7标准模式下触发标准模式。这种组合允许在Internet Explorer 7中正常工作的网页在IE8中继续这样做。
我没有评论这个。我确信这有一些很好的现实世界的原因,但我仍然有冲动想要把我的头放在桌子上。
当网站正在本地服务器上运行时,Internet Explorer将(默认情况下)切换到IE7兼容模式。
可以使用由包括X-UA-Compatible响应头为您的网页上的“内联网兼容模式IE7”禁用此:
HTTP/1.1 200 OK
X-UA-Compatible: IE=8
您还可以添加一个HTTP响应的equivlent通过在您的文档的HEAD>
中包含一个meta http-equiv
元素前往您的页面。例如。:
<!DOCTYPE html>
<html>
<head>
<title>Hello world!</title>
<meta http-equiv="X-UA-Compatible" content="IE=9">
</head>
<body>
</body>
</html>
注意:如果您的网站的标题
| Header | Value |
|------------------|---------|
| X-UA-Compatible | IE=10 |
到您的html文件,你必须添加它足够高的HEAD
别的东西发生前,在文件模式锁 - 并且你被锁定在IE7中。
错误示例1
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=8">
<html lang="en">
<head>
meta
元件head
元件
错例2
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello, world!</title>
<link rel="stylesheet" type="text/css" media="all" href="main-73c2257f2d.css" />
<meta http-equiv="X-UA-Compatible" content="IE=8">
的X-UA-Compatible
元素必须首先出现在内属于;除了title
和其他meta
元素。
X-UA兼容标头不区分大小写;但是,除了标题元素和其他元素之外,它必须出现在网页头部(HEAD部分)之前的所有其他元素之前。
错误示例3
<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10">
的条件句锁定浏览器到IE7模式。删除它们。
正确
<!doctype html>
<head>
<title>Hello, world!</title>
<meta http-equiv="X-UA-Compatible" content="IE=10">
的第一步是使用类似Firebug的工具,看看有什么响应头的Apache在两种情况下发出。 AFAIK,在兼容模式下,Apache将不得不发送'X-UA兼容'头文件 – 2011-01-14 12:05:59
这两种情况下的头文件是相同的。我目前使用的技术是标题中的标记。我也尝试在Apache配置中设置标题。相同的结果。 – deanoj 2011-01-14 12:14:09