2013-12-12 65 views
0

我目前正在研究一個新的Web項目,並且有一些問題針對Internet Explorer進行了優化(呵呵,誰會想到這個?)... I想要支持IE8 +,但將IE 7及更早版本重定向到替代頁面,建議下載其他瀏覽器。對於IE8,我想顯示一條消息,推薦另一個瀏覽器,但不會重定向它。在IE 9+一切都很好。 我遇到的第一個問題是,IE10總是在兼容模式下使用IE7標準渲染頁面,並使頁面看起來很糟糕。所以,我公司推出的X-UA兼容meta標籤是這樣的:與X-UA兼容的元標記和瀏覽器重定向的問題

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" /> 

然後我試圖實現對IE7及以下使用在不同的模式下使用

<!--[if lte IE 7]> 
     <script type="text/javascript"> 
      document.location.href = "outdated.html"; 
     </script> 
<![endif]--> 

測試頁在IE11重定向F12只是不會做重定向,並在IE7及以下版本中顯示糟糕的頁面,所以我假設X-UA兼容元標記打破了條件註釋。儘管如此,如果沒有標籤,所有低於IE10的IE版本都會被重定向,即使條件註釋中顯示「ie IE 7」...

我似乎無法自己解決這個問題, ! :)

乾杯,羅布

回答

0

IE默認使用兼容模式,如果網站是從本地主機或Intranet服務。

你可以閱讀更多關於它here

在企業環境中,某些領域有 兼容性問題的風險較低。例如,Intranet Zone網站默認使用兼容性視圖 。

你不能像你那樣重寫那個使用meta標籤。

相反,你需要發送HTTP標頭:

X-UA-Compatible: IE=edge 

類似問題的答案here

如果您使用的是.NET,那麼你可以使用IIS配置或進行web.config中的變化這個報頭文件:

<httpProtocol> 
    <customHeaders> 
     <clear /> 
     <add name="X-UA-Compatible" value="IE=Edge" /> 
    </customHeaders> 
</httpProtocol> 
+0

嗨Kaspars, 感謝您的迴應!事實上,離線測試是自動使用兼容模式的原因,沒有意識到這一點。因爲它將成爲託管網站,我想我根本不需要覆蓋它,是嗎? 儘管如此,有條件的評論似乎沒有工作......任何想法? 乾杯,搶 – user3094455

+0

嗨,我剛剛看到IE11完全放棄了對條件註釋的支持,並且您必須擁有您想要測試的瀏覽器的實際副本......這是真的嗎?因爲我認爲他們上週工作的時候,我的Windows虛擬機上仍然有IE10 ... – user3094455

+0

如果您在互聯網上的某個地方託管您的網站,您應該沒有問題。同時要小心,如果你在本地或內部網上爲客戶做一些演示。我一直在那裏解釋爲什麼每次重新加載頁面時網站都會出現問題。 :) –