如何在Javascript中以编程方式打开IE9兼容性视图
本文关键字:方式打 IE9 兼容性 视图 编程 Javascript | 更新日期: 2023-09-27 18:28:33
我需要以编程方式打开IE兼容性。
我知道这在C#中有效:
Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });
我的问题是我所有的窗口都显示在JS函数中:例如:
function openRadWin(idAgir) {
radopen("DemandesEnAttente_Estimate.aspx?id=" + idAgir, "RadWindow1");
}
所以我的问题是:在JS中有什么方法可以做同样的事情吗?
提前感谢
AFAIK,这是不可能的。你可以从JS中检测兼容性模式,但据我所知,设置它是不可能的。
至于你的问题,通常你可以使用几个解决方案:
- 如果您在站点中使用母版页,请在母版页中添加元标头(
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
) - 与#1类似,如果您使用的是一个通用的基本页面类(这是一个很好的推荐做法),那么您可以将通用基本页面的元标题注入到所有页面中
- 最后,您可以使用IIS配置将http标头添加到所有响应中
例如,对于IIS7/IIS7.5,可以使用web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-UA-Compatible" />
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
我建议#1或#2——如果你没有母版页或基本页类,那么也许是时候介绍两者了。
您的C#示例所做的是将以下元标记添加到html页面:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
如果您在运行JS代码的页面上手动执行此操作,它应该可以工作。
您可以尝试将此HTML标记添加到任何需要兼容性的页面的顶部:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
这样就不需要JavaScript解决方案了。当然,如果您能够更改HTML,那么最好的解决方案就是修复页面,使其不需要向后兼容性。
我认为,从客户端影响头的唯一方法是使用XmlHttpRequest请求页面。对我来说,在页面加载后谈论修改页眉是没有意义的,这实际上是你所要求的。