2.2.3 在標(biāo)記中定位Quirks模式和文檔模式
網(wǎng)頁可以在<head>內(nèi)使用X-UA-Compatible <meta>標(biāo)記來選擇一種特定的模式。代碼清單2-1使用<meta>標(biāo)記來通知IE:應(yīng)當(dāng)以IE 7模擬模式(IE=EmulateIE7)來加載一個(gè)網(wǎng)頁。
代碼清單2-1 HTML <meta> Compatibility頭示例
<!-- Load page in IE7 Emulation Mode -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
希望使用較舊標(biāo)準(zhǔn)解釋的較舊網(wǎng)頁可以使用DOCTYPE頭和<mea>標(biāo)記,并將這一決定告知IE。代碼清單2-2給出一個(gè)網(wǎng)頁,它使用松散HTML 4.0規(guī)范,并希望以Quriks(IE 5)模式進(jìn)行顯示。
代碼清單2-2 DOCTYPE和相應(yīng)的X-UA-Compatible <meta>標(biāo)記
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- Load page in IE5 (Quirks) Mode -->
<meta http-equiv="X-UA-Compatible" content="IE=5">
2.2.4 從服務(wù)器端定位文檔模式
使用X-UA-Compatible <meta>標(biāo)記指定文檔模式是非常簡(jiǎn)單的,但它并不適用于所有場(chǎng)景。大型網(wǎng)站和內(nèi)容管理系統(tǒng)(CMS)可能有數(shù)千個(gè)網(wǎng)頁,有些服務(wù)器可能托管了數(shù)千個(gè)網(wǎng)站。對(duì)這些類型的網(wǎng)站和托管構(gòu)造,要為每個(gè)網(wǎng)頁都添加<meta>標(biāo)記是不太可行的。
如果開發(fā)人員希望在一個(gè)Web服務(wù)器或者網(wǎng)站范圍內(nèi)應(yīng)用一種IE模式,可以向任意Web服務(wù)器配置添加一個(gè)新的HTTP頭來實(shí)現(xiàn)。這個(gè)頭的名稱為X-UA-Compatible,它的相關(guān)值代表了在該服務(wù)器配置內(nèi)所托管網(wǎng)頁的期望模式。這樣不僅會(huì)在服務(wù)器范圍內(nèi)應(yīng)用該設(shè)置,實(shí)際上,相對(duì)于META標(biāo)記還能獲得一點(diǎn)性能增益(因?yàn)镮E是在分析該網(wǎng)頁之前就知道這一模式了,而不是在分析之后才知道)。
1. 向IIS添加X-UA-Compatible頭
開發(fā)人員可以通過Internet Information Services (IIS)管理器(可以在“控制面板”|“管理工具”中找到此管理器)向IIS添加X-UA-Compatible頭。HTTP響應(yīng)頭配置(可以在全局設(shè)置或特定網(wǎng)站中找到)包含一個(gè)列表,其中包含為每個(gè)頁面請(qǐng)求發(fā)送的響應(yīng)頭。兼容性頭是通過這個(gè)配置頁上的“添加”對(duì)話框來添加的,如圖2-1所示。