2011-09-04 84 views
8

我不明白在所有什麼<meta http-equiv="X-UA-Compatible" content="..." />是...兼容X-UA的要點是什麼?

有人能解釋一下......

  • 它爲content不同的價值觀是什麼?
  • 什麼省略它適用於不同的瀏覽器?
  • 它的動機是什麼?
  • 它爲什麼存在?
+1

那麼,「內容」的那些不同的值是什麼? – BoltClock

+0

@BoltClock - 「IE =邊緣」 「IE = 5」 「IE = EmulateIE7」 「IE = 7」 「IE = EmulateIE8」 「IE = 8」 「IE = EmulateIE9 」 IE = 9 「 –

回答

14

這是一個可怕的黑客來迎合不同版本的Internet Explorer瀏覽器中的錯誤或不完整的實現。例如,這樣的:

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

將指示IE9假裝它是真正IE7,以避免如果你的網站工作在IE7,但不是IE9可能出現的任何問題。

+1

故意使用IE的向後兼容模式確實是一件非常困難的事情;不惜一切代價儘可能避免這種情況的發生;但是在這裏需要注意的是'content =」IE = Edge「'可以是有用的,因爲它可以避免compat模式:在默認情況下IE自身配置爲使用兼容模式的情況下,使用IE = edge將強制IE返回到標準模式。 – Spudley

+0

另請注意,在Intranet站點上,您可能需要調用此選項以禁用兼容模式。查看更多詳細信息:https://stackoverflow.com/a/26348511/601197 – AhsenB

21

此元標記(或http標題)僅對IE8及更高版本有意義。這是一種強制IE將頁面渲染爲舊版本的方法。忽略它沒有效果,只有在使用時才起作用。

可能的值是「IE =」後面是下列任何一項:

  • 邊緣 - 渲染爲任何IE的最新版本是
  • IE9 - 在標準模式下呈現爲IE9
  • 效仿IE9 - 渲染爲IE9但使用<!DOCTYPE>確定模式
  • IE8 - 在標準模式下呈現爲IE8
  • 模仿IE8 - 渲染爲IE8但使用<!DOCTYPE>來determ的INE模式
  • IE7 - 在標準模式呈現爲IE7
  • 仿真IE7 - 渲染爲IE7但使用<!DOCTYPE>來確定模式
  • IE5 - 在怪異模式呈現爲 IE7

另外,如果Chrome瀏覽器已安裝,您可以添加一個逗號,後跟Chrome = 1來告訴IE使用Google Chrome Frame呈現網頁。所以,你可能有一個標籤,看起來像這樣:

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

或者,取而代之的是,你還可以指定要使用GCF針對IE瀏覽器的特定版本及以下這樣的:

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8"> 

這意味着如果安裝了GCF並且IE版本爲8或更低版本,則使用GCF作爲最新安裝的IE版本。

因此,很明顯,能夠使舊版本的IE使用GCF很有用,但這可能不是微軟的意圖,當他們實施這個。它可以用於與僅適用於舊版IE的舊網站的兼容性,並且不能輕易修復,但這很愚蠢。就我個人而言,我覺得它對測試很有用。因爲從單個開發機器測試多個版本的IE通常並不那麼簡單,所以這提供了一個體面的解決方案。

+3

偉大的答案,但讀者應該知道[谷歌鉻框架2014年1月退休](http://blog.chromium.org/2013/06/retiring-chrome-frame.html) – 2013-08-07 05:38:45