在IE8浏覽器以後版本,都有一個“兼容性視圖”,讓不少新技術無法使用。那麼如何禁止浏覽器自動選擇“兼容性視圖”,強制IE以最高級別的可用模式顯示內容呢?下面就介紹一段HTML代碼。
X-UA-Compatible是一個設置IE浏覽器兼容模式的屬性,在IE8浏覽器之後誕生。IE8或者IE9有很多種模式,比如,IE8有4種模式:IE5.5怪異模式、IE7標准模式、IE8幾乎標准模式、IE8標准模式;而IE9有7種模式: IE5.5怪異模式、IE7標准模式、IE8幾乎標准模式、IE8標准模式、IE9幾乎標准模式、IE9標准模式、XML模式。
在想要開啟標准渲染模式的頁面,我們常使用代碼:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
來開啟IE8的標准渲染模式。這種方式在只存在IE8浏覽器的時候比較合適,但是後來又出現了IE9、IE10、IE11等等。我們就可以這樣寫:
<meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;IE=7;" />
意思就是優先最前面的IE9,沒IE9就用IE8。那麼如果針對每一種都寫一遍,似乎就有些冗余了。所以我們改變方式采用代碼:
<meta http-equiv="X-UA-Compatible" content="edge" />
Edge模式通知IE以最高級別的可用模式顯示內容,這實際上破壞了“鎖定”模式。
當然,我們還見過這樣的代碼:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
就是增加了chrome=1值,目的是觸發Google Chrome Frame,不過現在Google已經拋棄Google Chrome Frame了,因此也不用這樣寫了。
總結:
1)在目標頁面的<head></head>標簽,使用代碼: <meta http-equiv="X-UA-Compatible" content="edge" /> 觸發標准模式,這個是最有效的方法。這樣設置後IE中設置兼容模式的按鈕也會消失,可以按F12打開“開發人員工具”來檢查浏覽器模式。
2)當然你也可以在服務端代碼C#/VB.NET進行設置,以VB.NET為例:
Public Shared Sub SetHeadCompatible(ByRef myPage As Page) Dim li As Literal = New Literal() li.Text = "<meta http-equiv='X-UA-Compatible' content='edge' />" myPage.Header.Controls.AddAt(0, li) End Sub
3)上面所說的設置僅是在指定的頁面中,沒有設置的頁面是不會有效果的。那如果想所有頁面都有效果,總不能每個頁面都去設置吧,此時可以在web Config中設置:
<system.webServer> <!-- Edge模式通知IE以最高級別的可用模式顯示內容 --> <httpProtocol> <customHeaders> <clear/> <add name="X-UA-Compatible" value="IE=edge" /> </customHeaders> </httpProtocol> </system.webServer>
原文出處
作者:icech
鏈接:http://www.weste.net/2013/8-9/93109.html