Firefox 3.5 加入很多新功能,當然也加強了對各式網際標準的支援程度。這篇文章大致說明改進的部份、詳細的說明可見英文版原文。
限於人力,大部分的文章都是英文版。如果您有興趣,請協助翻譯。
3.5 技術面新功能
網站、網際程式部份
加強支援 HTML 5
- 在 Firefox 中操作影片、音效
-
Firefox 3.5 支援 HTML 5 的
audio
及video
元素。藉由原生支援,影片、音效可以經由 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 相關規格。新增關於position
、float
、list-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()
方法已加入到object
和iframe
元素。
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 元素開始支援
clientXXX
及scrollXXX
等特性。 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
來查詢隱私瀏覽模式的狀態。