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



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

显然,默认情况下,IE设置为始终在兼容性视图模式下显示Intranet站点。我尝试使用元标记,标准 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" />

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

请参阅覆盖内网兼容模式 IE8,该模式告诉您修改 http 标头,而不是指定元标记。给出了如何在 web.config 文件中执行此操作的示例 ASP.Net。

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

  1. 您导航到要重新配置的网站;
  2. 查找条目 HTTP 响应标头;
  3. 添加名称:"X-UA 兼容"和值:"IE=边缘"的设置。

如果您的网站是 ASP.Net Web 应用程序,则这两种方法将相互复制。也就是说,第二种方法实际上将更新 web.config 文件。

最新更新