1. 程式人生 > >X-UA-Compatible

X-UA-Compatible

php文件 處理 添加 pau 找到 前端 ade 設置方法 最新

X-UA-Compatible是神馬?

X-UA-Compatible是IE8的一個專有<meta>屬性,它告訴IE8采用何種IE版本去渲染網頁,在html的<head>標簽中使用。可以在微軟官方文檔獲取更多介紹。

為什麽要用X-UA-Compatible?

在IE8剛推出的時候,很多網頁由於重構的問題,無法適應較高級的瀏覽器,所以使用X-UA-Compatible標簽強制IE8采用低版本方式渲染。

使用下面這段代碼後,開發者無需考慮網頁是否兼容IE8瀏覽器,只要確保網頁在IE6、IE7下的表現就可以了。

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

時至今日,IE6已被微軟判了死刑,我們在重構時應首先考慮更完善的IE8下的體驗,然後依次回退兼容IE7和6。令我擔憂的情況是當IE9正式發布時如果IE6在國內還沒被淘汰,那麽將出現前端工程師需要面臨4個IE版本的瘋狂局面(且4個版本顯示差異較明顯)。

給網站添加X-UA-Compatible標簽

我建議使用下面的X-UA-Compatible標簽:

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

IE=edge告訴IE使用最新的引擎渲染網頁,chrome=1則可以激活Chrome Frame。

網頁中添加方法

在<head>下面添加上述代碼即可。WordPress則在主題header.php文件裏做修改。

這樣的方法簡單快捷,但是弊端是代碼將無法通過W3C驗證。其實這並不是問題,畢竟標準只是標準,如果只有這一個“錯誤”完全不會有任何不良的影響。

當然你可能像Sivan一樣有代碼潔癖和一定程度的標準癖,那麽我們還可以從服務器端進行這個設置,請繼續往下看。

Apache服務器設置方法

嗯??我們可以在Apache主機做一些設置讓服務器告訴IE采用何種引擎來渲染。在網站作用目錄找到或新建.htaccess文件,添加下面的內容保存即可。

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge" env=ie
    BrowserMatch chromeframe gcf
    Header append X-UA-Compatible "chrome=1" env=gcf
  </IfModule>
</IfModule>

Nginx服務器設置方法

現在很多朋友使用Nginx作為搭建環境,當然也是OK的。找到\nginx\conf\nginx.conf並編輯,在server { }區域裏(最好是閉合符前面起一行)添加下列代碼即可

add_header "X-UA-Compatible" "IE=Edge,chrome=1";

不清楚具體位置的請參考paul irish的配置文件。

好啦,上面就是3種常用的添加方法。我認為這個標簽主要是為重構者服務,如果代碼的兼容性很強那麽不用也罷。

Chrome Frame[1]:Chrome Frame可以讓舊版IE瀏覽器使用Chrome的WebKit渲染引擎處理網頁,因此舊版IE用戶可以體驗到包括HTML5在內的眾多現代網頁技術。

X-UA-Compatible