[IE8修練大會] 相容性檢視補遺:相容性檢視列表與非IE瀏覽器的處理

這一篇裡頭,將為大家介紹IE8內建的「相容性檢視列表」,和非IE瀏覽器會如何面對相容性檢視問題。

我在這裡的第一篇文章提到了有關相容性檢視的一些資料。但很顯然地我的調查仍然不太細膩,導致於有一些地方有誤會或著是不足。這一篇裡頭將為大家介紹IE8內建的「相容性檢視列表」和非IE瀏覽器會如何面對相容性檢視問題。

 

重新介紹一遍IE8的模式

在經過一些調查和反省過後,我做了一張圖來描繪IE8的模式。

你可以在「開發者工具」中看到「瀏覽器模式」和「文件模式」,也可以立刻套用以檢視其變化。另外也可以發現,IE8開發者工具會在該瀏覽器模式下,自動選用的「文件模式」標上「網頁預設值」字樣。

 

相容性檢視列表

相信大家在安裝IE8時一定會被問過一個問題:「是否要使用 [相容性檢視] 更新?」,而對於這個更新到底是什麼完全渾然不知。

事實上,這個相容性檢視更新內容是:一個預設啟用相容性檢視的網站列表。他的檔案名稱叫做iecompat.dll。這個dll中包含一個名為iecompatdata.xml的網站列表,列出遇到哪些網站(更準確地說,遇到哪些二級網域)時,自動開啟IE8的相容性檢視功能。(也因此你不會在列表中的網站看到相容性檢視的開關)

你可以在IE8的網址列輸入res://iecompat.dll/iecompatdata.xml以查看這一份相容性檢視列表。

目前名列其中的台灣網頁可以說真不少,無名小站PCHome博客來網路書店聯合新聞網一蘋果網路全都榜上有名。不過就連微軟自己的microsoft.com和live.com也都在這份清單之中 XDDDDDDDDDD

是否要使用這份列表自動來開啟相容性檢視,或著接收這份列表的更新,可以到工具→相容性檢視設定選擇。

這份清單是透過Windows Update來進行更新的,像是KB968220就是一個網站列表的更新。

 

其他利用IE核心的瀏覽器怎麼著?

Microsoft的答案是:為了大部分使用者的相容性著想,在其他IE核心的瀏覽器(或:使用WebBrowser / 使用Trident核心的瀏覽器)像是Firefox的IE Tab、Maxthon、KKMan或PCMan,「瀏覽模式」都預設使用「IE8相容性檢視」。這表示你上述的瀏覽器中,無論什麼網頁(除非透過HTTP Header或<meta>標籤進一步強迫指定),都會選用IE8相容性檢視,而對網頁大部份採用IE7標準模式來讀取。

但所幸Microsoft開放透過登錄機碼的方式來更改掉這個設定。

打開regedit(開始-執行-regedit),在HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE下的Software\Microsoft\Internet Explorer\Main\FeatureControl中,先新增一個機碼FEATURE_BROWSER_EMULATION

在這個機碼下新增一個DWORD值。名稱是你想更改瀏覽模式的程序名稱(以IE Tab而言是firefox.exe,真的!),而如果想使用IE8模式,將值設為十進位的8000

重開一次你的瀏覽器應該就可以套用了。

 

IE8相容性檢視Demo:更新版

為了更進一步表達瀏覽器模式和文件模式的差別,以及相容性檢視與UserAgent下的變化,我重新設計了之前的Demo。而更有趣的是,ntu.edu.tw剛剛好在相容性檢視清單下,所以可以順便測試這個清單的有效性呢! XD

 

測試網站在這裡。(備用點,這個不在相容性檢視清單下)

 

參考資料