IE11 中的相容性變更

使用 Internet Explorer 11,您能夠與網站標準、其他瀏覽器以及實際網站更相容。 而且,還提供常見網站標準的更新支援,以及避免舊版網站無法正確顯示的變更。

這些變更包含:

使用者代理字串變更

對於許多舊版網站而言,IE11 一些最明顯的變更都與使用者代理字串有關。 以下是 Windows 8.1 上 IE11 的報告:


Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

使用者代理字串的特定值會根據各種因素的數量而有差異,例如,執行瀏覽器的作業系統、執行瀏覽器的裝置,以及網站是否以相容性檢視顯示。 如需詳細資訊,請參閱使用者代理字串變更

使用舊版的 Internet Explorer,部分使用者代理字串會依據環境而有差異。 以下是 Windows 7 上 IE11 的字串:


Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

如果您比較這些字串與舊版 Internet Explorer 報告的字串,會發現下列變更:

  • 移除了相容 ("compatible") 和瀏覽器 ("MSIE") 權杖。
  • 新增了 "like Gecko" 權杖 (為了與其他瀏覽器一致)。
  • 瀏覽器版本現在由新的修訂版 ("rv") 權杖報告。

這些變更有助於防止 IE11 被誤認為舊版。

一般而言,您應該避免偵測特定瀏覽器或瀏覽器版本。 這類測試的基本假設通常會在瀏覽器更新後產生誤判的結果。 反之,請在您需要時才偵測功能,並使用漸進性增強功能,為不支援您所需功能的瀏覽器或裝置提供簡化的使用經驗。

在少數情況下,可能需要唯一識別 IE11。 此時請使用 Trident 權杖來執行。

文件模式變更

Windows Internet Explorer 8 引進文件模式,協助您將舊版瀏覽器支援的功能轉換為現代標準及其他瀏覽器指定的功能。 後續發行的 Windows Internet Explorer 引進新文件模式來模擬舊版支援的功能以持續進行這種轉換,同時引進業界標準定義的功能支援。

正當許多網站進行更新以便為其他瀏覽器提供更為豐富的使用經驗時,某些網站仍然繼續使用目前的傳統功能支援,為 Internet Explorer 提供傳統的使用經驗,即使新版瀏覽器支援對其他瀏覽器展現的使用經驗。

從 IE11 開始,「邊緣模式」是慣用的文件模式,它代表瀏覽器對現代標準的最高支援。

使用 HTML5 文件類型宣告來啟用邊緣模式:


<!doctype html>

邊緣模式從 Internet Explorer 8 開始引入,已經用於每個後續版本。 請注意,邊緣模式支援的功能僅限於轉譯內容之特定版本瀏覽器支援的功能。

從 IE11 開始,文件模式已過時且不再使用,除非只是暫時性使用。 請務必更新仰賴傳統功能和文件模式的網站,以反映現代標準。

如果您必須使用特定文件模式以便讓網站正常運作,同時又要將它重新建構為支援現代標準和功能,請務必注意您使用的是轉換功能,未來的版本可能不會提供這類功能。

如果您目前針對舊版文件模式使用 x-ua-compatible 標頭,您的網站可能無法反映出 IE11 的最佳使用經驗。 如需詳細資訊,請參閱 modern.ie

傳統 API 的新增、變更及移除

許多網站尋找支援傳統 (HTML4) 功能的瀏覽器,以便提供舊版瀏覽器的最佳化使用經驗。 對於支援傳統功能及現代標準 (如 HTML5、CSS3 等等) 的瀏覽器而言,這可能會出現問題。 如果網站搜尋現代標準支援之前偵測到傳統功能,它會對支援現代標準及更豐富的使用經驗的瀏覽器提供傳統的使用經驗。

因此,IE11 預設會新增、變更及移除一些傳統功能:

此外,根據現代標準指定的功能移除了幾個傳統的 API 功能:

移除的 API 功能取代的功能
attachEvent addEventListener
window.execScript eval
window.doScroll window.scrollLeftwindow.scrollTop
document.all document.getElementById
document.fileSizeimg.fileSize 使用 XMLHttpRequest 擷取來源
script.onreadystatechangescript.readyState script.onload
document.selection window.getSelection
document.createStyleSheet document.createElement("style")
style.styleSheet style.sheet
window.createPopup 使用 diviframe 搭配高 zIndex
二進位行為各有差異;使用以標準為基礎的對等物件,如 canvasSVGCSS3 動畫
傳統資料繫結使用來自架構的資料繫結,如 WinJS

 

這些變更可部分協助避免不正確撰寫的使用者代理偵測機制,錯誤地將 Internet Explorer 識別為較早的版本。 因此可讓仰賴現代標準的網站依原先的設計顯示。

URL 字元編碼

IE11 變更了 URL 的字元編碼。 具體而言,查詢字串和 XHR 要求現在以 UTF-8 字元編碼進行編碼。

這項變更會影響所有 URL,但下列項目除外:

  • 錨點名稱元件 (也稱為「片段」)。
  • 使用者名稱和密碼元件。
  • file:// 或 ftp:// 通訊協定連結。

這些變更符合其他瀏覽器的行為,並簡化跨瀏覽器 XHR 程式碼。

自訂資料屬性

IE11 新增 HTML5 自訂資料屬性以及 dataset 屬性的支援,讓您能以程式設計的方式存取它們。您可以使用 data- 首碼後面跟著屬性名稱,將資料屬性指派給元素:


<div data-example-data="Some data here"></div>

若要取得或設定資料屬性的值,請使用這個語法:


   // to get
   var myData = element.dataset.exampleData;
   // to set
   element.dataset.exampleData = "something new";


SVG "pointer-events" 屬性的 HTML 支援

從 IE11 開始,也支援將 pointer-events 當做 HTML 元素上的 CSS 屬性,包含下列效果:

說明

none

元素不會引發指標輸入事件 (不能進行點擊測試)。

任何其他有效的 pointer-events 值

元素會引發指標輸入事件。

 

pointer-events 屬性預設是繼承的,所以它會影響套用元素的所有子系。

更新會反映對標準規格的變更。

IE11 也包含支援已更新或持續進化之標準網頁規格的更新。 這些包含支援下列功能的相關變更:

彈性方塊 ("Flexbox") 配置更新

使用 IE11,您可以更新網站以符合最新的彈性方塊標準以及簡化跨瀏覽器程式碼。

如需詳細資訊,請參閱"彈性方塊 ("Flexbox") 配置更新"

變動觀察者

變動觀察者是 IE11 中新的標準化 Web 平台功能,為變動事件支援的所有相同案例,提供一個快速執行且直接取代的方法,而且也是屬性變更事件所支援案例的替代項目。

如需更多詳細資料,請參閱"變動觀察者""將變動和屬性變更事件移轉到變動觀察者"

指標事件

為了要符合全球資訊網協會 (W3C) 指標事件規格的候選建議,IE11 的實作方式已根據 Internet Explorer 10 進行些許的變更。

如需完整的詳細資料,請參閱"指標事件更新"

 

 

顯示:
© 2014 Microsoft