<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">javascript
文檔兼容模式的定義。
Edge 模式告訴 IE 以最高級模式渲染文檔,也就是任何 IE 版本都以當前版本所支持的最高級標準模式渲染,避免版本升級形成的影響。簡單的說,就是什麼版本 IE 就用什麼版本的標準模式渲染
<meta http-equiv="X-UA-Compatible" content="IE=edge">
使用如下代碼強制 IE 使用 Chrome Frame 渲染
<meta http-equiv="X-UA-Compatible" content="chrome=1">
提示 IE 用戶安裝 Google Frame
Google 官方提供了對 Google Frame 插件安裝狀況的檢測,這裏直接調用方法便可,若是檢測到 IE 並未安裝 Google Frame,則彈出對話框提示安裝。
<script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script><script>CFInstall.check();</script>
最佳的兼容模式方案,結合考慮以上兩種:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
上面是百度到的相關解析,可是仍然不能解決個人疑惑,此處這個標記後面居然出現了chrome這樣的值,IE也能夠模擬chrome了?
迅速搜索了一下,才明白原來不是微軟加強了IE,而是谷歌作了個外掛:Google Chrome Frame(谷歌內嵌瀏覽器框架GCF)。這個插件可讓用戶的IE瀏覽器外不變,但用戶在瀏覽網頁時,實際上使用的是Google Chrome瀏覽器內核,並且支持IE六、七、8等多個版本的IE瀏覽器,谷歌這個牆角挖的真給力!
而上文提到的那個meta標記,則是在是安裝了GCF後,用來指定頁面使用chrome內核來渲染。
GCF下載地址: http://code.google.com/intl/zh-CN/chrome/chromeframe/
安裝完成後,若是你想對某個頁面使用GCF進行渲染,只須要在該頁面的地址前加上 gcf: 便可,例如: gcf:http://cooleep.com
可是若是想要在開發時指定頁面默認首先使用GCF進行渲染,若是未安裝GCF再使用IE內核進行渲染,該如何進行呢?
就是使用這個標記。
標記用法:
閱讀了下chrome的開發文檔(http://www.chromium.org/developers/how-tos/chrome-frame-getting-started,需翻-牆),下面來簡單講解一下這個標記的語法。
http-equiv="X-UA-Compatible"這個是IE8的專用標記,是用來指定Internet Explorer 8 瀏覽器模擬某個特定版本IE瀏覽器的渲染方式,以此來解決IE瀏覽器的兼容問題。
例如指定IE8瀏覽器使用IE6的渲染方式呈現界面。
曾經css hacker經常使用的模擬IE7渲染方式的代碼:
<meta http-equiv = "X-UA-Compatible" content = "IE=EmulateIE7" />
令我好奇的是文章第一段提到的代碼中「content="IE=edge,chrome=1"」一段,字面意思是指定IE使用chrome的渲染方式?仍是讓IE的皮使用後臺的Chrome內核?
查了一下,這段是Google開發的一個Google Chrome Frame「Google Chrome 瀏覽器內嵌框架 - GCF」。使用GCF可讓用戶的IE瀏覽器外觀不變,但用戶在瀏覽網頁時實際上使用的是Chrome的內核,而且支持Windows XP及以上系統的IE6/7/8。
而第一段中提到的代碼則是指定該頁面使用Chrome內核來作渲染,前提是用戶必須已經安裝了Google Chrome Frame。
官方對其定義:
■可以使用開放式網絡技術(如 HTML5 canvas 標記)當即啓動,甚至包括 Internet Explorer 六、7 或 8 尚不支持的技術。
■利用 JavaScript 性能加強功能,使應用程序速度更快,響應更靈敏。
因此這段代碼則能夠解釋爲:若是安裝了GCF,則使用GCF來渲染頁面「"chrome=1"」,若是沒有安裝GCF,則使用最高版本的IE內核進行渲染「"IE=edge"」。
然而,下一個問題又來了,在w3.org的html5驗證工具下:
介個也好解決,針對三種主流服務器,咱們均可以在服務器端配置http equiv規則:
apache服務器,確保 mod_headers 和 mod_setenvif 是available的,而後在httpd.conf「新版Apache的配置文件是 apache2.conf」或者在.htaccess中加入如下規則:css
<IfModule mod_setenvif.c> <IfModule mod_headers.c> BrowserMatch chromeframe gcf Header append X-UA-Compatible "chrome=1" env=gcf </IfModule > </IfModule >
Windows Server在IIS7或者更高版本的服務器中,只須要修改web.config文件,添加以下信息便可:html
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name = "X-UA-Compatible" value = "chrome=1" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>html5
在Nginx服務器中,只須要找到 ginxconf ginx.conf並編輯,在server { }區域裏(最好是閉合符前面起一行)添加下列代碼便可:java
add_header "X-UA-Compatible" "IE=Edge, chrome=1";