最近在整理網(wǎng)頁mate標(biāo)簽,想著把常用的mate標(biāo)簽記錄一下,有的可以解決IE不兼容的問題。現(xiàn)在電腦普遍來說最低版本的IE也應(yīng)該是IE8了,但是不排除某些落后的電腦機(jī)器依然是IE6.7,所以整理下相關(guān)資料以留備用。
優(yōu)先使用 IE 最新版本和 Chrome
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 關(guān)于X-UA-Compatible -->
<meta http-equiv="X-UA-Compatible" content="IE=6" ><!-- 使用IE6 -->
<meta http-equiv="X-UA-Compatible" content="IE=7" ><!-- 使用IE7 -->
<meta http-equiv="X-UA-Compatible" content="IE=8" ><!-- 使用IE8 -->
以上標(biāo)簽,所描述的就是根據(jù)不通代碼,打開網(wǎng)頁默認(rèn)采用哪種模式,有說明可根據(jù)實(shí)際要求使用。(推薦使用第一段代碼)
其中chrome=1",這段是Google開發(fā)的一個(gè)Google Chrome Frame「Google Chrome 瀏覽器內(nèi)嵌框架 – GCF」。使用GCF可以讓用戶的IE瀏覽器外觀不變,但用戶在瀏覽網(wǎng)頁時(shí)實(shí)際上使用的是Chrome的內(nèi)核,并且支持Windows XP及以上系統(tǒng)的IE6/7/8。
而第一段中提到的代碼則是指定該頁面使用Chrome內(nèi)核來做渲染,前提是用戶必須已經(jīng)安裝了Google Chrome Frame。
官方對其定義:
可使用開放式網(wǎng)絡(luò)技術(shù)(如 HTML5 canvas 標(biāo)記)立即啟動(dòng),甚至包括 Internet Explorer 6、7 或 8 尚不支持的技術(shù)。
利用 JavaScript 性能增強(qiáng)功能,使應(yīng)用程序速度更快,響應(yīng)更靈敏。
所以這段代碼則可以解釋為:如果安裝了GCF,則使用GCF來渲染頁面「”chrome=1″」,如果沒有安裝GCF,則使用最高版本的IE內(nèi)核進(jìn)行渲染「”IE=edge”」。
所說這樣寫可以兼容,但是在W3C的Html5驗(yàn)證工具下:
就這對強(qiáng)迫癥患者產(chǎn)生了嚴(yán)重的心里陰影,duang.....
于是在網(wǎng)上查了下資料,可以針對三種主流服務(wù)器端配置http equiv規(guī)則:
1、apache服務(wù)器
確保 mod_headers 和 mod_setenvif 是available的,然后在httpd.conf「新版Apache的配置文件是 apache2.conf」或者在.htaccess中加入以下規(guī)則:
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
BrowserMatch chromeframe gcf
Header append X-UA-Compatible "chrome=1" env=gcf
</IfModule>
</IfModule>
2、Windows Server在IIS7或者更高版本的服務(wù)器,只需要修改web.config文件,添加如下信息即可:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name = "X-UA-Compatible" value = "chrome=1" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
3、Nginx服務(wù)器
只需要找到ginx.conf并編輯,在server { }區(qū)域里(最好是閉合符前面起一行)添加下列代碼即可:
add_header "X-UA-Compatible" "IE=Edge, chrome=1";
完成,注意,虛擬主機(jī)的話只能添加在網(wǎng)頁的mate的標(biāo)簽內(nèi),自己的服務(wù)區(qū)修改的時(shí)候也許謹(jǐn)慎,修改前注意備份。