2010-11-25 127 views
55

我有這樣的<head>IE兼容模式:「X-UA兼容的」標籤「邊緣」

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

這將迫使IE瀏覽器的最新渲染模式,但兼容模式被認爲是最後一個?

我的意思是,例如:在IE8中使用此代碼,它會強制它使用IE8或IE8兼容模式?

+0

從MSDN開始:「由於邊緣模式文檔使用Internet Explorer版本可用的最高模式顯示網頁,因此建議您僅應將此文檔模式用於測試目的,不要將其用於生產用途「。 (http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx) – Steven 2012-04-30 22:32:24

回答

63

該標籤將嘗試強制瀏覽器使用瀏覽器支持的最新呈現模式。它不會觸發兼容模式。

請注意,標籤必須是頭部中的第一個標籤,否則將無法使用。 如果可能的話,這個事實有利於使用HTTP標頭,因爲HTTP標頭中的順序無關緊要。

如果瀏覽器劇照在兼容模式下,當您使用頁眉或meta標記的這些東西一個是有可能的原因結束了:

  • 你缺少一個健全的doctype
  • 瀏覽器一直設置爲始終使用兼容模式
  • 該網站託管在一個「內部網站」和Intranet站點的默認設定爲

常瀏覽器兼容性查看設置

Microsoft認爲至少192.168.x.x位於「Intranet站點」上。 IE8/IE9中Intranet站點的默認值是使用兼容模式。對於許多商業應用程序來說,這是一個巨大的問題,因爲即使使用此元標記,程序員也無法覆蓋此選項。 (「在Compatitiblity查看顯示Intranet站點」不是由元標記或HTTP標頭重寫 - 瀏覽器是在兼容性視圖的完整控制在這種情況下)

Compatibility View Settings

總是添加該元標記或HTTP頭?

使用此元標記的另一個好處是從瀏覽器的地址欄中刪除「兼容視圖」圖標。至少您的用戶不能使用該按鈕決定渲染模式。

+2

根據此http://ie.microsoft.com/testdrive/ieblog/2010/Mar/ 02_HowIE8DeterminesDocumentMode_3.png它應該可以被標題覆蓋。 – 2012-10-29 10:14:53

+0

我也嘗試過HTTP標頭,如果頁面是從「Intranet站點」提供的,那麼如果選中「在兼容性視圖中顯示Intranet站點」複選框,則標頭不會除去兼容模式。如果你想讓它與標題一起工作,我非常想知道你是如何做到的,以改善這裏的事情。 :) – oldwizard 2012-11-20 22:49:31

+0

我創建了一個Asp.Net DLL來修復MS列表中的國際客戶端。你用什麼語言? – 2012-11-21 08:37:30

-3

單獨使用Edge關鍵字有什麼意義?我的意思是,如果您希望IE使用最新的渲染引擎,那麼只需刪除整個元標記即可。

否則,它應該是類似的東西(這將讓IE8表現得像IE7和IE9和更新將照常上班):

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" /> 
2

即使你未選中在兼容性視圖「顯示Intranet站點「選項,並且在響應頭中包含X-UA兼容性,您的瀏覽器可能會默認爲」兼容性視圖「 - 您的組策略。看看您的控制檯的以下消息:

HTML1203: xxx.xxx has been configured to run in Compatibility View through Group Policy.

其中xxx.xxx是您的網站(即test.com)的域。如果您看到此信息,那麼您的域的組策略將設置爲任何以test.com結尾的站點都將自動以兼容模式呈現,而不管文檔類型,標題等。

有關詳細信息,請參閱以下鏈接解釋HTML代碼):http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx

0

我不是專家,但通過試驗和錯誤:

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

解決了這個問題對我來說。我在網站和webapps上使用了它,並且它停止了IE8進入兼容模式,並在IE10和IE11中顯示爲「標準」。