mozilla

Firefox 3.5 技術文件

Firefox 3.5 加入很多新功能,當然也加強了對各式網際標準的支援程度。這篇文章大致說明改進的部份、詳細的說明可見英文版原文。

限於人力,大部分的文章都是英文版。如果您有興趣,請協助翻譯。

3.5 技術面新功能

網站、網際程式部份

加強支援 HTML 5

在 Firefox 中操作影片、音效
Firefox 3.5 支援 HTML 5 的 audiovideo 元素。藉由原生支援,影片、音效可以經由 JavaScript 直接操作 (播放、暫停等)。目前只支援 Ogg 及 WAV 兩種格式的影音檔,未來可能支援其他的格式。
離線資源
Firefox 3.5 現在完整支援 HTML 5 的離線資源規格。需注意的是,在 Firefox 3 雖已經支援部份規格、但由於推出後 HTML 5 離線資源規格已然修改,是以毋需再針對 Firefox 3 設計相關程式。3.5 支援的是最新的規格。
拖放事件
HTML 5 拖放 (drag & drop) API 提供在網站內 (甚至跨網站) 拖放物件的相關功能。同時,這也讓 Mozilla 相關的程式擴充套件有了比較簡單的 API 可以使用。

新增功能:CSS 部份

動態下載字形
新支援的 @font-face 樣式規則,網頁可以藉此提供字形讓使用者動態下載、以設計師所期待的最佳字形檢視網頁。
CSS 媒介判讀
Firefox 3.5 現在支援 CSS 媒介判讀 (media queries),可以讓不同的媒介使用不同的樣式規則。
更新 ::before::after 行為以符合 CSS 2.1
::before::after 兩個擬態元素 (pseudo-element) 已經更新,以便完整支援 CSS 2.1 相關規格。新增關於 positionfloatlist-style-* 及部份 display 特性。
opacity
Mozilla 先前提供的 -moz-opacity 特性已經停止支援,請改用標準的 opacity 特性。
text-shadow
Firefox 3.5 開始支援 text-shadow 特性,可以為網頁上的文字加上陰影效果。
word-wrap
此特性可設定是否允許某行文字溢出版面時自動調整斷行。
-moz-box-shadow
-moz-border-image
-moz-column-rule
-moz-column-rule-width
-moz-column-rule-style
-moz-column-rule-color
-moz-column-gap
Firefox 3.1 開始新增上述 Mozilla 擴充特性。
-moz-nativehyperlinktext 色彩值
新的色彩設定值,顯示為系統的預設連結色彩。
-moz-window-shadow-moz-system-metric(mac-graphite-theme) 特性
為了方便佈景主題製作而新增的 CSS 特性。
-moz-appearance 支援新設定值
-moz-appearance 開始支援 -moz-win-glass-moz-mac-unified-toolbar 兩種新設定值。
CSS 變形
Firefox 3.5 開始支援 CSS 變形特性,詳情請見 -moz-transform-moz-transform-origin
:nth-child
:nth-last-child
:nth-of-type
:nth-last-of-type
:first-of-type
:last-of-type
:only-of-type
Firefox 3.5 開始支援上述選取符。

新增功能:DOM 部份

DOM 背景工作序
Firefox 3.5 支援 DOM 背景工作緒 (workers),方便網際應用程式以多執行緒方式執行。
地理位置
Firefox 3.5 支援地理資訊 (Geolocation) API,在安裝有相關元件 (Geolocation provider)並啟用的狀態下、允許網際應用程式取得使用者目前的所在地。
在 Firefox 中使用 JSON
DOM 已經整合對 JSON 的支援。
以選取符取用 DOM 元素
選取符 API 讓開發人員以類似 CSS 的選取符指定 DOM 元素方便操作。
NodeIterator 物件
NodeIterator 提供在DOM子樹中對節點列表進行往返(iterating)的支援。
MozAfterPaint 事件
新 DOM 事件,在視窗重繪時觸發。
MozMousePixelScroll 事件
新 DOM 事件,允許偵測滑鼠滾輪事件,且是以像素為單位、非以往的「行」。

新增功能:JavaScript

Object.getPrototypeOf()
傳回指定物件的原型。
字串物件的「修剪」方法
String 物件現在可藉 trim()trimLeft()trimRight() 等方法清除空白部份。

其他新功能

ICC 色彩校正
Firefox 3.5 現在支援圖片的 ICC 色彩校正。
script 元素支援 defer 屬性
此屬性讓瀏覽器可以決定是否要等待此段腳本執行完畢後再繼續分析、繪制網頁。
控制預讀 DNS
Firefox 3.5 提供預讀 DNS 功能,不必等到真的按下連結、就可以先行處理本頁裡各連結網址的域名查詢,讓使用者感覺更快。本文說明操作這個行為的方法,包括如何停用、如何調整此功能。

新增功能:Canvas 部份

canvas 元素中的 HTML 5 text API
Canvas 元素開始支援 HTML 5 text API。
canvas 支援陰影效果
此版開始支援 Canvas 陰影效果。
moz-opaque 屬性
增加 moz-opaque DOM 屬性,指定 canvas 是否需要使用透明效果。如果一開始就確定不會有透明效果、那麼繪製的效率便能最佳化。

新增功能:SVG 部份

在 HTML 內容中套用 SVG 特效
你現在可以在 HTML 及 XHTML 內容中套用 SVG 特效。

其他改良要點

  • ch 已可用於任何支援單位設定值之處;「1 ch」便是「0」字元的寬度。
  • white-space 特性開始支援 pre-line 設定值。
  • 文字結點已經實現 wholeText 屬性和 replaceWholeText() 方法。
  • 增加了 element.children 屬性。它會回傳在指定元素下的子元素集合
  • DOM的 Element 物件現在支援了Element Traversal API。
  • HTML 節點可以使用 cloneNode() 複製。
  • 被傳送(Dispatch)過的 DOM 事件可以再被傳送。這讓 Firefox 3.5 通過了 Acid 3 中的 test 30.
  • 改進了DOM 2 Range 的處理。
  • 在非 chrome 範圍下,在例外中被擲回的物件現在確實是該擲回的物件,而並非一個包含該被擲回物件的 XPConnect wrapper。
  • SVG 的 ID references 現在可用了。
  • SVG filters 現在對 foreignObject 也有用。
  • 為了相容性,GetSVGDocument() 方法已加入到 objectiframe 元素。

XUL 及套件開發相關

如果您曾開發擴充套件,那麼請先閱讀為 Firefox 3.5 更新套件(英文),裡頭說明了新版本對套件可能衍生的影響。

新元件、函式

跨網域 HTTP 存取控制
當伺服器提供相關支援,則 Firefox 3.5 可以操作包含 XMLHttpRequest 在內的跨網域 HTTP 存取方式。
XMLHttpRequest 進度事件
讓擴充套件得以監控相關進度。
支援隱密瀏覽模式
Firefox 3.5 支援隱密瀏覽模式,不會紀錄使用者的活動。擴充套件如需支援隱密模式,可以參考這份文件。
Firefox 3.5 安全相關變動
Firefox 3.5 安全性相關的變動說明。
Firefox 3.5 佈景主題變動
Firefox 3.5 佈景主題相關的變動說明。

其他值得一提的改良、改變

  • XUL 的 textbox widget 現在提供了搜尋欄位用的 search 類型。
  • 為了支援跨視窗間的滑鼠拖放,browser 新增了 swapDocShells() 方法。
  • En/XUL/Attribute/Panel.level panel 元素新增了 level 屬性;可用於指定 Panel 要顯示在所有程式的頂端,或是只在包含此Panel之視窗的頂端。
  • XUL 元素開始支援 clientXXXscrollXXX 等特性。
  • keyset 現在可以包含 disabled 屬性。
  • 另外,keyset 現在也可以使用 removeChild() 方法來移除。
  • mozIStorageStatement 移除了 initialize() 方法;consumer應該改用 createStatement() 方法而非取得一個新的 statment 物件。
  • Storage API 現在支援了非同步請求。
  • nsICookie2 介面現在會透過其新的 creationTime 屬性透露Cookie被建立的時間。
  • nsIProtocolHandler 增加了一個旗標 (URI_IS_LOCAL_RESOURCE) ,會在 Chrome 註冊時被檢查已確定這樣的協定(Protocol)是否可被允許建立。
  • Firefox 現在在 Linux 下會在 /usr/lib/mozilla/plugins ,以及過去支援的位置,尋找 Plugin。
  • Plugin API 更新了對於隱私瀏覽模式的支援。你現在可以使用 NPN_GetValue() ,使用變數 NPNVprivateModeBool 來查詢隱私瀏覽模式的狀態。

Document Tags and Contributors

標籤: 
Contributors to this page: teoli, BobChao, irvinfly, Littlebtc, RJ_Hsiao
最近更新: RJ_Hsiao,