4

我在一个 CMS 驱动的站点上有数千个页面在公司网络中呈现不佳,因为 IE 将它们视为 Intranet 页面,而 IE 的默认设置是以兼容模式呈现 Intranet 页面。

我想在标题标记之后插入 IE Edge 元标记以强制浏览器进入其最新版本,但我无法为此编辑每个页面。为了避免编辑单个页面或必须在 CMS 中重新生成页面,我认为我应该能够使用执行此操作的服务器端脚本来更新所有页面共有的包含。那可能吗?我认为它需要在服务器端,因为在 onload 时添加元标记不会强制浏览器模式,但也许我错了。

所以我想要这个:

<head>
...some stuff...
<title>My Title</title>
...some other stuff...
<!--#include virtual="/myinclude.asp"-->
</head>

变成这样:

<head>
...some stuff...
<title>My Title</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
...some other stuff...
...rendered include...
</head>

有没有办法做到这一点?还是我没有看到的其他解决方法?

4

2 回答 2

3

事实证明,您可以使用以下方法将内容添加到标题中:

<%  Response.AddHeader "CustomHeader","CustomValue" %>

看起来我把它放在页面上的哪个位置都没有关系,所以我可以将它粘贴在公共包含中,所有页面都会获得自定义标题。在这种情况下:

<% Response.AddHeader "X-UA-Compatible","IE=Edge,chrome=1" %>

希望我早点知道这种方式!这是规格:

http://msdn.microsoft.com/en-us/library/ms524327(v=vs.90).aspx

于 2013-10-03T18:04:07.103 回答
2

您可以将 IIS 设置为发送所服务的所有页面的标头。MSDN 文章将这些步骤描述为:

在 IIS7 中配置 EmulateIE7 HTTP 标头(通过用户界面)

  1. 打开 Internet 信息服务 (IIS) 管理器
  2. 从连接窗格中选择服务器
  3. 右键单击中心任务窗格中的“HTTP 响应标头”,然后选择“打开功能”
  4. 从“操作”窗格中选择“添加”
  5. 添加名称为“X-UA-Compatible”且值为“IE=Edge”的自定义标头</li>

他们还有通过命令行进行更改的步骤。

IIS 博客上有一篇文章,其中列出了可能的值以及它们的作用。

模拟 IE8 模式 --> IE=EmulateIE8
模拟 IE7 模式 --> IE=EmulateIE7
IE5 模式 --> IE=5
IE7 模式 --> IE=7.5
IE8 模式 --> IE=8
边缘模式 --> IE=Edge
于 2013-10-02T18:09:54.930 回答