从ASP include中添加标题标记后的IE Edge元标记

时间:2013-10-02 16:13:55

标签: internet-explorer iis asp-classic x-ua-compatible

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

我想在标题标记之后插入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>

有办法做到这一点吗?或者其他一些我没有看到的解决方法?

2 个答案:

答案 0 :(得分:3)

事实证明你可以用标题添加标题:

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

似乎我把它放在页面上的位置并不重要,所以我可以将它放在常见的include中,所有页面都会获得自定义标题。在这种情况下:

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

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

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

答案 1 :(得分:2)

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

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

  1. 打开Internet信息服务(IIS)管理器
  2. 从连接窗格中选择服务器
  3. 右键单击中心任务窗格中的“HTTP响应标头”,然后选择“打开功能”
  4. 从“操作窗格”中选择“添加”
  5. 添加名称为“X-UA-Compatible”的自定义标头和值“IE = Edge”
  6. 他们还有通过命令行进行更改的步骤。

    IIS Blog上有一篇文章,其中列出了可能的值以及它们将要执行的操作。

    Emulate IE8 mode  -->   IE=EmulateIE8
    Emulate IE7 mode  -->   IE=EmulateIE7
    IE5 mode          -->   IE=5
    IE7 mode          -->   IE=7.5
    IE8 mode          -->   IE=8
    Edge mode         -->   IE=Edge