繁体   English   中英

如何在Javascript中以编程方式打开IE9兼容性视图

[英]How to turn on IE9 Compatibility View programmatically in Javascript

我需要以编程方式打开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中检测到兼容模式 ,但据我所知无法进行设置。

至于问题所在,通常您可以使用几种解决方案:

  1. 如果您在站点中使用母版页,请在母版页中添加元标头( <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> )。
  2. 与#1相似,如果您使用的是通用基础页类(一种好的建议做法),则可以将通用基础页的meta标头注入所有页面。
  3. 最后,您可以使用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-如果您没有母版页或基础页类,那么也许是介绍两者的好时机。

您可以尝试将此HTML标签添加到任何需要兼容性的页面的顶部:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

这样,您就不需要JavaScript解决方案。 当然,如果您具有更改HTML的能力,那么最好的解决方案是修复页面,使其不需要向后兼容。

我相信影响客户端标头的唯一方法是使用XmlHttpRequest请求页面时。 对我来说,谈论在页面加载后修改标头没有意义,这实际上是您要的内容。

您的C#示例所做的是在HTML页面中添加以下meta标签:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

如果您在运行JS代码的页面上手动执行此操作,则它将正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM