為了處理根據Web標準創作的網頁和根據盛行於20世紀90年代末的舊時實踐創作的網頁,當代的Web瀏覽器實現了各種不同的引擎模式。本文說明了那些模式是什麼以及如何觸發它們。
原文: Henri Sivonen的Activating Browser Modes with Doctype
本文包含的模式轉換(mode switching)適用於Firefox和其他基於Gecko的瀏覽器,Safari、Chrome和其他基於Webkit的瀏覽器,Opera、 Konqueror、Mac版Internet Explorer、Windows版Internet Explorer和內嵌IE的瀏覽器。避免提及瀏覽器引擎的名字,取而代之的是使用該引擎最知名瀏覽器的名字。
本文著重介紹模式的選擇機制,而不是記錄每個模式的確切行為。
以下是各種不同的模式:
text/html內容的模式選擇取決於doctype嗅探(doctype sniffing,本文後面有討論)。在IE8中,模式也取決於其他因素。然而在IE8的預設情況下,那些不在微軟提供黑名單上的非區域網路(non- intranet)網站的模式取決於文件類型。
再怎麼強調每個瀏覽器中模式精確行為的差異也是不過分的,即使本文中進行了統一的討論。
Firefox、Safari、Chrome和Opera中,application/xhtml+xml HTTP內容類型(不是meta元素也不是doctype!)會觸發XML模式。在XML模式中,瀏覽器嘗試給予XML文件在規範上的正確處理達到在製定瀏覽器中的程度。
E6、7和8不支援application/xhtml+xml,Mac IE5也是如此。
基於WebKit的Nokia S60 瀏覽器中,application/xhtml+xml HTTP內容類型不能觸發XML模式,因為在移動的圍牆花園(mobile walled gardens)中關注點是對不規範內容的兼容性。 (舊式的「行動瀏覽器」無法使用真正的XML解析器,因為不規範內容已被標記為XML。)
由於沒有充分測試Konqueror,我無法確切地說出在這個瀏覽器中會發生什麼。