我正在尝试将一套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,那么针对IE7的旧代码(与我无关!)就会失败。
之前有没有人遇到过这个问题,如果是的话,你是怎么解决这个问题的?
&LT;的 的antisnark&GT;
让我们假设在启动之前移植所有遗留代码是不可能的。
&LT;的 的/ antisnark&GT;
答案 0 :(得分:1)
Chrome Frame已停止使用。
最好的办法是切换到Chrome's Legacy Browser Support,这会根据所访问的网站默默切换用户的浏览器。
修改强>
Chrome框架作为封闭容器
GCF将所有顶级导航发送到Internet Explorer。这是为了 允许内容加载主机浏览器中的其他链接。此功能 可以通过添加DWORD值HandleTopLevelRequests = 0来关闭 在HKCU \ Software \ Google \ ChromeFrame下。在这种情况下所有的 随后的顶级导航将保留在Chrome Frame中 他们是否有元标记。
因此,要突破CF,您必须在链接上设置target="_top"
或使用弹出窗口打开链接 - 只要注册表项HandleTopLevelRequests设置为1。