[英]ChromeFrame ignoring X-UA-Compatible header in cross-site navigation
我試圖將一組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瀏覽器內嵌框架后,似乎可以獨立訪問每個站點了,但是據我所知,使用超鏈接從一個站點鏈接到另一個站點會使標題被忽略。 這意味着如果用戶已從我們的HTML5主頁導航到IE7,則舊目標代碼將落入IE7(與我無關)!
有人遇到過這個問題嗎?如果是,您是如何解決這個問題的?
< 抗蛇葯>
讓我們假設在啟動之前移植所有遺留代碼是不可能的。
< / antisnark>
Chrome內嵌框架已停產。
最好的選擇是切換到Chrome的舊版瀏覽器支持 ,它會根據所訪問的站點以靜默方式切換用戶的瀏覽器。
編輯
從文檔中
Chrome框架作為密閉容器
GCF將所有頂級導航發送到Internet Explorer。 這是為了允許內容加載主機瀏覽器中的其他鏈接。 可以通過在HKCU \\ Software \\ Google \\ ChromeFrame下添加DWORD值HandleTopLevelRequests = 0來關閉此功能。 在這種情況下,所有后續的頂級導航都將保留在Chrome框架內,無論它們是否具有meta標簽。
因此,要打破CF,您必須在鏈接上設置target="_top"
或使用彈出窗口打開鏈接-只要注冊表項HandleTopLevelRequests設置為1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.