我在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>
有办法做到这一点吗?或者其他一些我没有看到的解决方法?
答案 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标头(通过用户界面)
他们还有通过命令行进行更改的步骤。
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