72

我想知道如何阻止正在使用IE 8轉到兼容模式的用戶?如何在IE中禁用兼容性視圖

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

我發現這個標籤,我覺得這迫使人們留在IE 8模式,但我也不太清楚,不能檢查,因爲我有IE 9

如果人們在IE 9模式我強迫他們不要進入IE 8或IE 7兼容模式?

我試圖把上面一行在我的代碼,並去了IE 9 - >工具 - >兼容性視圖(灰色)

但「兼容性視圖設置」不是灰色的,它似乎可以添加該網站通過那裏。

那麼應該不禁用?

+15

@ Sparky672 - 是的,我確實。我不支持IE 7並顯示瀏覽器已過期警告。我通過可用性研究發現,大多數人沒有發佈他們可能處於兼容模式(並且實際上沒有將其設置爲啓用知識),並且當您告訴他們瀏覽器已過期時,他們認爲他們正在使用IE 8(研究時最新的瀏覽器),他們很快就感到困惑。最好的解決方案是強制他們回到IE 8/9(他們可能認爲他們正在運行的任何東西) – chobo2 2011-06-14 21:19:52

回答

48
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

應該強制你的頁面在IE8標準中呈現。用戶可以將該網站添加到兼容性列表中,但該標籤優先。

一種快速的方法來檢查會加載頁面,並輸入地址欄下面:

javascript:alert(navigator.userAgent) 

如果你看到IE7的字符串,它加載在兼容模式下,否則不是。

+2

如果他們使用IE 9將它們設置爲IE 8會發生什麼? – chobo2 2011-06-15 15:44:44

+1

如果用戶在IE9中使用它,它將以IE8標準模式顯示它。您也可以使用IE9中的F12 Developer Toolbar來驗證它。 – 2011-06-15 21:31:21

+0

這是正確的答案。 – EricLaw 2011-06-17 03:38:21

0

向頁面添加標籤不會控制Internet控制面板中的UI(選擇工具 - >選項時出現的對話框)。如果您正在查看可能爲google.com,msn.com,about:blank或example.com的主頁,則Internet控制面板無法知道您網頁的內容可能是什麼,並且它不會下載它在後臺。

看看this document on MSDN,其中討論了兼容模式以及如何關閉您的網站。

91

所有你需要的是強制禁用C.M.在IE瀏覽器 - 只需粘貼此代碼(在IE9和下釐米將被禁用):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" /> 

來源:http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html

+3

這爲我保存了Twitter Bootstrap&IE兼容性。僅供參考 - 這需要成爲FIRST元標記。 – 2013-10-21 14:30:26

+11

不一樣嗎? – eug 2013-12-26 05:18:21

+4

注意不要在此標記之前使用任何條件註釋。否則它不工作!發現那裏的提示:http://stackoverflow.com/questions/3449286/force-ie-compatibility-mode-off-in-ie-using-tags#comment26890406_3449338 – abimelex 2014-03-26 14:51:33

9

如果您使用ASP.NET MVC,我發現Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")在一個代碼塊_layout工作得很好:

@Code 
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1") 
End Code 
<!DOCTYPE html> 
everything else 
66

這應該是夠給力的IE用戶在任何IE版本砸兼容模式:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> 

然而,有幾個需要注意的地方應該意識到的:

  • 的meta標籤上面應該<head>下被列爲最先標籤。只有<title>標籤可以放置在它上面。

如果你不這樣做,你會在IE9開發工具得到一個錯誤:X-UA-Compatible META tag ignored because document mode is already finalized.

  • 如果你想要這個標記驗證,請一定要記住關閉meta標籤與/>而不是隻有>

  • IE11開始,邊緣模式是首選的文檔模式。要支持/啓用該功能,請使用HTML5文檔類型聲明<!doctype html>

  • 如果您需要支持IE7上的網頁字體,請確保您使用<!DOCTYPE html>。我測試過它,發現使用<!doctype html>時,IE7上的網頁字體變得非常不可靠。

使用谷歌瀏覽器內嵌框架是流行的,但不幸的是它本月將要下跌的某個時候,2014年一月

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1"> 

廣泛的相關資訊here。關於將其用作第一個元標記的提示位於之前提到的源here,它已被更新。

1

在JSF我用:

<h:head> 
    <f:facet name="first"> 
     <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> 
    </f:facet> 

    <!-- ... other meta tags ... --> 

</h:head> 
2

另一種方式實現這一目標的Apache是​​通過將以下行.htaccess在您的網站的根文件夾(或在Apache的配置文件)。

BrowserMatch "MSIE" isIE 
BrowserMatch "Trident" isIE 
Header set X-UA-Compatible "IE=edge" env=isIE 

這需要你啓用了mod_headersmod_setenvif模塊。

額外的HTTP標頭只被發送到IE瀏覽器,而沒有其他的。

5

FelixFett給出的答案爲我工作。重申:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" /> 

我把它作爲我的代碼中的第一個'meta'標籤。我添加了10和11,因爲這些是現在爲Internet Explorer發佈的版本。

我會剛剛評論他的答案,但我沒有足夠高的聲譽...