2.3 兼容性視圖
兼容性視圖是一種機制,用來顯示為較早IE版本設計的網(wǎng)站,并不會妨礙對可互操作性Web標準的長期采用。簡而言之,它使IE在沒有“破壞Web”的情況下繼續(xù)前進,IE團隊就是這樣聲明的。兼容性視圖建立在一些基本原則的基礎之上:
● 默認情況下,所有網(wǎng)頁都運行在IE 8標準模式中(“默認標準”)。
● 通過兼容性視圖加載的頁面運行在IE 7標準模式中。
● 當在兼容性視圖中加載頁面時,“用戶代理”字符串和條件注釋指出該瀏覽器是IE 7。
● 兼容性視圖應用于整個域,包含子域在內(nèi)。
除非頁面通過X-UA-compatible <meta>標記或HTTP頭,顯式指定了其文檔模式,否則,當以下條件之一為真時,網(wǎng)頁將以“兼容性視圖”顯示:
● 它的域出現(xiàn)在用戶的“兼容性視圖”設置列表中(通過單擊“兼容性視圖”按鈕添加,或者在“兼容性視圖設置”中人工插入)。
● 它的域出現(xiàn)在“兼容性視圖組策略”鍵中。
● 它的域出現(xiàn)在微軟兼容性視圖列表中。
● 它的域處于Intranet區(qū)域中,并且為所有intranet站點啟用了兼容性視圖。
● 對所有網(wǎng)站打開了兼容性視圖。
2.3.1 微軟兼容性視圖列表
在IE 8發(fā)布時,很多常用網(wǎng)站在IE 8標準模式下運行時都會中斷顯示。微軟認為,一旦用戶在自己的系統(tǒng)中安裝了IE 8,這種情況就會妨礙用戶的日常瀏覽。于是就創(chuàng)建了“微軟兼容性視圖列表”來緩解這一情況;這個列表中包含了一些流行網(wǎng)站的域,這些網(wǎng)站更適于在IE 7兼容模式性運行。這個列表中的所有域都將被加載到“兼容性視圖”中,直到網(wǎng)站的主人采取措施,確保它與IE 8保持兼容,以及(或者)請求遷移為止。
微軟最早是在IE 8候選版期間向用戶發(fā)布的“兼容性視圖列表”。這個列表是使用Windows Update發(fā)送的,可以通過微軟下載中心獨立下載。希望下載這個列表的用戶必須選擇接收并安裝它。開發(fā)人員不應當依賴于用戶來完成這一工作,因為并不是所有用戶都安裝了這個列表。
這個列表本身是實現(xiàn)了ie8compatlistdescription命名空間的XML文檔。這個列表中的域被保存為<domain>標記中的字符串。這個XML文檔包含在IE資源庫中(res://iecompat.dll/ iecompatdata.xml)(見代碼清單2-6)。
代碼清單2-6 從兼容性列表中選擇域(截至2009年10月)
<?xml version="1.0" encoding="utf-8" ?>
<ie8compatlistdescription
xmlns="http://www.microsoft.com/schemas/ie8compatlistdescription/1.0">
...
<domain>americanexpress.com</domain>
<domain>americangreetings.com</domain>
<domain>amtrak.com</domain>
...
</ie8compatlistdescription>
2.3.2 控制兼容性設置
用戶和開發(fā)人員可以通過大量的公開入口點來控制以兼容性視圖顯示的域。通過“兼容性視圖”按鈕來啟用這一功能是最方便的,當這一功能可供使用時,將在地址欄中顯示這一切換按鈕(見圖2-2)。通過單擊這一按鈕,可以為任何一個域來開啟和關(guān)閉兼容性視圖;這一切換事件將會對域進行刷新,以顯示為期望狀態(tài)。