我需要以编程方式启用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中有没有办法做同样的事情?
提前致谢
答案 0 :(得分:6)
AFAIK,这是不可能的。你可以从JS detect the compatibility mode但是根据我的知识设置它。
至于你的问题,通常你可以使用一些解决方案:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
)。例如,对于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 - 如果你没有母版页或基页类,那么也许是介绍两者的好时机。
答案 1 :(得分:1)
您可以尝试将此HTML标记添加到需要兼容性的任何页面的顶部:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
这样你就不需要JavaScript解决方案了。当然,如果您能够更改HTML,那么最好的解决方案是修复页面,使其不需要向后兼容。
我认为从客户端影响标头的唯一方法是使用XmlHttpRequest请求页面时。在页面加载后谈论修改标题是没有意义的,这实际上就是你所要求的。
答案 2 :(得分:1)
您的C#示例的作用是将以下元标记添加到html页面:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
如果您在运行JS代码的页面上手动执行此操作,它应该可以正常工作。