在具有服务器设置的Intranet站点的IE中阻止兼容性视图模式?

时间:2012-11-30 18:58:29

标签: internet-explorer cross-browser

我正在构建一个托管为Intranet的网站。我需要它不在IE的兼容性视图中。

显然,IE默认设置为始终在兼容性视图模式下显示Intranet站点。我尝试过使用meta标签,标准的xhtml dom,但似乎没有什么能够强制关闭兼容模式。唯一的方法是让用户转到工具/兼容性视图设置/并取消选中“在兼容性视图中显示Intranet站点”。

有没有办法使用服务器设置强制关闭Intranet站点中的兼容性视图?

我试过了:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>TEST</title>
</head>
<body> 
    test
</body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
</head>
<body> 
    test
</body>
</html>

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

2 个答案:

答案 0 :(得分:0)

你的第一个例子应该有效。但请注意,IE仍然会将IE7 User-Agent标头发送到服务器,因此您不应该对IE版本进行服务器端检测。此外,在测试时,您需要清除缓存并在更改代码时重新启动浏览器,因为IE将尝试记住您网站上次使用的兼容性视图设置,而不是读取X-UA兼容值。

答案 1 :(得分:0)

请参阅Override intranet compatibility mode IE8,它告诉您修改http标头,而不是指定元标记。给出了一个如何在ASP.Net web.config文件中执行此操作的示例。

或者,您可以在Web服务器配置中指定自定义标头。例如,在IIS 7.5中,

  1. 导航到要重新配置的网站;
  2. 查找条目 HTTP响应标头;
  3. 使用名称添加设置:“X-UA-Compatible”和值:“IE = Edge”。
  4. 如果您的网站是ASP.Net Web应用程序,则两种方法都会相互复制。也就是说,第二种方法实际上会更新web.config文件。