0

我正在尝试将一套 Web 应用程序从 .NET 2.0 WebForms 迁移到由 WCF Web 服务提供的 HTML5 Backbone 应用程序,并且遇到了一个相当大的障碍。

并排托管两个站点,web.config每个站点的设置如下:

新应用

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=edge,chrome=1" />
  </customHeaders>
</httpProtocol>

旧版应用程序

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=7,9" />
  </customHeaders>
</httpProtocol>

安装 Chrome Frame 后,独立访问每个站点似乎工作正常,但据我所知,使用超链接从一个站点链接到另一个站点会导致标题被忽略。这意味着,如果用户从我们的 HTML5 主页导航到旧代码(与我无关!),则针对 IE7 的旧代码将失效。

以前有没有人遇到过这个问题,如果有,您是如何解决的?


<反蛇>

让我们假设在发布之前移植所有遗留代码是不可能的。

</antisnark>

4

1 回答 1

1

Chrome Frame 已停产。

最好的办法是切换到Chrome 的旧版浏览器支持,它会根据访问的站点默默地切换用户的浏览器。

编辑

文档

Chrome Frame 作为封闭容器

GCF 将所有顶级导航发送到 Internet Explorer。这是为了允许内容在主机浏览器中加载其他链接。可以通过在 HKCU\Software\Google\ChromeFrame 下添加一个 DWORD 值 HandleTopLevelRequests=0 来关闭此功能。在这种情况下,所有后续的顶级导航都将保留在 Chrome Frame 中,无论它们是否具有元标记。

因此,要跳出 CF,您必须target="_top"在链接上进行设置,或者使用弹出窗口打开链接——只要将注册表项 HandleTopLevelRequests 设置为 1。

于 2013-08-23T11:51:43.273 回答