面向開發者的 Firefox 3.5
Firefox 3.5(於 2009 年 6 月 30 日釋出)引入了許多新功能,併為各種 Web 標準提供了更多改進的支援。本文提供了一份詳盡的列表,其中包含指向介紹主要改進的文章的連結。
Firefox 3.5 中新增的開發者功能
對於網站和應用程式開發者
HTML 5 支援
- HTML 影片和音訊
- Firefox 中的離線資源
-
Firefox 3.5 現在完全支援 HTML 5 離線資源規範。
- 拖放
-
HTML 5 拖放 API 允許在網站內部和網站之間拖放專案。這還為擴充套件和基於 Mozilla 的應用程式提供了一個更簡單的 API。
新增支援的 CSS 功能
- 可下載字型支援
-
新的
@font-face@規則允許網頁提供可下載字型,以便網站能夠完全按照頁面作者的預期進行渲染。 - CSS 媒體查詢
-
Firefox 3.5 現在支援 CSS 媒體查詢,這增強了對媒體相關樣式表的支援。
::before和::after更新到 CSS 2.1-
::before和::after偽元素已更新為完全支援 CSS 2.1,增加了對position、float、list-style-*和某些display屬性的支援。 ch長度單位-
ch單位現在可以在任何接受 長度 的地方使用。1ch是“0”(零)字元的寬度。 opacity-
CSS 的
-moz-opacityMozilla 擴充套件已被移除,取而代之的是標準的opacity屬性。 text-shadow-
現在支援
text-shadow屬性,它允許網頁內容指定應用於文字和文字裝飾的陰影效果。 overflow-wrap-
這個新支援的屬性允許內容指定是否可以在單詞內部斷行,以防止當一個不可斷開的字串太長而無法在一行中容納時發生溢位。
white-space屬性支援pre-line值-
white-space屬性現在接受pre-line值。 -moz-box-shadow,-moz-border-image,-moz-column-rule,-moz-column-rule-width,-moz-column-rule-style,-moz-column-rule-color-
Firefox 3.5 增加了對這些 Mozilla CSS 擴充套件的支援。
-moz-nativehyperlinktext顏色值-
這個新的顏色值表示使用者系統的預設超連結顏色。
-moz-window-shadow屬性和:-moz-system-metric(mac-graphite-theme)偽類-
這些新的 CSS 功能旨在方便主題化。
-moz-appearance的新值-
-moz-win-glass和-moz-mac-unified-toolbar值已新增到-moz-appearance。 - 使用 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 功能
- localStorage
-
Firefox 3.5 增加了對 Web 儲存
localStorage屬性的支援,它為 Web 應用程式提供了一種將資料本地儲存在客戶端計算機上的方法。 - 使用 Web Worker
-
Firefox 3.5 支援 Web Workers,以方便 Web 應用程式中的多執行緒支援。
- 使用地理定位
-
Firefox 3.5 支援地理定位 API,如果安裝並啟用了該資訊的提供程式,它允許 Web 應用程式獲取有關使用者當前位置的資訊。
- 使用選擇器定位 DOM 元素
-
選擇器 API 允許查詢文件以定位與給定選擇規則匹配的元素。
- 滑鼠手勢事件
-
Firefox 3.5 支援滑鼠手勢事件,例如觸控板滑動。
NodeIterator物件-
NodeIterator物件支援遍歷 DOM 子樹中的節點列表。 MozAfterPaint事件-
這個新的 DOM 事件在視窗中的繪製更新後傳送。
MozMousePixelScroll事件-
這個新的 DOM 事件允許檢測基於畫素的滑鼠滾輪事件,而不是基於行的滾動事件。
新增 JavaScript 功能
- JavaScript 1.8.1 中的新特性
-
JavaScript 1.8.1 中所有更改的概述。
Object.getPrototypeOf()-
這個新方法返回指定物件的原型。
- 使用原生 JSON
-
Firefox 3.5 原生支援 JSON。
- String 物件上的新 trim 方法
-
String物件現在具有trim()、trimLeft()和trimRight()方法。
網路
- HTTP 的跨域訪問控制
-
在 Firefox 3.5 中,如果伺服器支援,HTTP 請求(包括透過
XMLHttpRequest發出的請求)現在可以跨域工作。 XMLHttpRequest的進度事件-
現在提供進度事件,以使擴充套件能夠監視請求的進度。
- 改進的同步
XMLHttpRequest支援 - 控制 DNS 預取
-
Firefox 3.5 提供了 DNS 預取功能,它會提前解析當前頁面中包含的連結的域名,以便在實際點選連結時節省時間。本文介紹瞭如何調整您的網站以停用預取或調整預取操作方式。
新增 Canvas 功能
canvas元素的 HTML 5 文字 API-
Canvas 元素現在支援 HTML 5 文字 API。
canvas中的陰影效果-
現在支援 Canvas 陰影效果。
createImageData()-
現在支援 canvas 方法
createImageData(),允許程式碼專門建立一個ImageData物件,而無需自動完成。透過防止其他ImageData方法建立物件,這可以提高它們的效能。 moz-opaque屬性-
添加了
moz-opaque屬性,它讓 canvas 知道是否會有半透明度。如果 canvas 知道沒有半透明度,則可以最佳化繪製效能。另請參閱HTMLCanvasElement.mozOpaque。
新增 SVG 功能
- 將 SVG 效果應用於 HTML 內容
-
您現在可以將 SVG 效果應用於 HTML 和 XHTML 內容;本文介紹瞭如何實現。
其他新功能
- Firefox 中的 ICC 顏色校正
-
Firefox 3.5 現在支援帶標籤影像的 ICC 顏色校正。
script元素現在支援defer屬性-
此屬性指示瀏覽器可以選擇繼續解析和渲染頁面,而無需等待指令碼執行完成。
其他改進
- 已實現 Text 節點的
wholeText屬性和Text.replaceWholeText()方法。 - 已新增屬性
element.children。它返回給定元素的子元素集合。 - 現在支援屬性
HTMLElement.contentEditable,以支援可編輯元素。 - DOM Element 物件現在支援 Element Traversal API。
- 現在可以使用
cloneNode()克隆 HTML 文件節點。 - 已移除非標準的
getBoxObjectFor()DOM 方法。您應該改用getBoundingClientRect()。 - 已分派的 DOM 事件現在可以重新分派。這使得 Firefox 3.5 透過 Acid 3 測試的第 30 項。
- DOM 2 Range 處理已得到改進。
- 在非 chrome 範圍內,異常中捕獲的物件現在是實際丟擲的物件,而不是包含丟擲物件的
XPConnect包裝器。 - SVG ID 引用現在是即時的。
- SVG 濾鏡現在適用於
foreignObject。 - 為了相容性,已將
GetSVGDocument()方法新增到object和iframe元素。 - 物件和陣列初始化器中屬性的隱式設定不再執行 JavaScript 中的 setter。
gDownloadLastDir.path變數已重新命名為gDownloadLastDir.file,因為它指的是nsIFile,而不是路徑。gDownloadLastDirPath變數已重新命名為gDownloadLastDirFile,因為它指的是nsIFile,而不是路徑。- 從 Firefox 3.5 開始,您不能再在獲取
XPCNativeWrapper自動化的 chrome 包中使用data:繫結。
面向 XUL 和附加元件開發者
如果您是擴充套件開發者,您應該首先閱讀 更新 Firefox 3.5 的擴充套件,它提供了可能影響您擴充套件的更改的有用概述。
新元件和功能
- 支援隱私瀏覽模式
-
Firefox 3.5 提供了隱私瀏覽模式,它不記錄使用者的活動。擴充套件可以按照本文提供的指南支援隱私瀏覽。
- Firefox 3.5 中的安全更改
-
本文涵蓋了 Firefox 3.5 中與安全相關的更改。
- Firefox 3.5 中的主題更改
-
本文涵蓋了 Firefox 3.5 中與主題相關的更改。
- 監控 Wi-Fi 接入點
-
具有 UniversalXPConnect 許可權的程式碼現在可以監視可用接入點列表,獲取有關其 SSID、MAC 地址和訊號強度等資訊。這可以與地理定位結合使用,以提供基於 Wi-Fi 的位置服務。
顯著更改和改進
- XUL
textbox小部件現在提供search型別,用於搜尋欄位。 - 為了支援在視窗之間拖放標籤頁,
browser小部件現在具有swapDocShells()方法。 - 為
panel元素添加了level屬性;這指定了面板是出現在其他應用程式之上,還是僅出現在包含面板的視窗之上。 - XUL 元素現在支援
clientHeight、clientWidth、scrollHeight和scrollWidth屬性。 keyset現在包含disabled屬性。- 此外,
keyset現在可以使用節點的removeChild()方法移除。 mozIStorageStatement的initialize()方法已被移除;使用者應改用createStatement()方法來獲取新的語句物件。- Storage API 現在支援非同步請求。
nsICookie2介面現在在其新的creationTime屬性中公開了 cookie 的建立時間。- 已向
nsIProtocolHandler添加了一個標誌(URI_IS_LOCAL_RESOURCE),該標誌在 chrome 註冊期間進行檢查,以確保允許註冊協議。 - Firefox 現在在 Linux 上也會在
/usr/lib/mozilla/plugins中查詢外掛,以及之前支援的位置。 - 外掛 API 已更新,以支援隱私瀏覽模式;您現在可以使用
NPN_GetValue()透過變數NPNVprivateModeBool查詢隱私瀏覽模式的狀態。
面向終端使用者的新功能
使用者體驗
- 位置感知瀏覽
-
如果您選擇,可以允許 Firefox 3.5 與網站共享有關您當前位置的資訊。Firefox 3.5 可以使用有關您所連線網路的資訊來共享您的位置。當然,它會在這樣做之前徵求您的許可,以確保您的隱私。
- 開放的音訊和影片支援
-
Firefox 3.5 支援使用開放的 Ogg 格式嵌入影片和音訊,以及音訊的 WAV。無需外掛,也沒有關於需要安裝某些東西(結果在您的平臺上無法使用)的令人困惑的錯誤訊息。
- 本地資料儲存
-
Web 應用程式現在可以使用 Web 儲存的本地儲存功能在您的計算機上儲存資料。這對於從網站偏好設定到更復雜的資料的任何內容都非常有用。
安全和隱私
效能
- 更快的 JavaScript 效能
-
JavaScript,即“AJAX”中的“J”,在 Firefox 3.5 中使用新的 TraceMonkey JavaScript 引擎得到了顯著加速。Web 應用程式比 Firefox 3 中快得多。
- 更快的頁面渲染
-
由於“推測性解析”等技術,Web 內容在 Firefox 3.5 中繪製速度更快。您的使用者無需知道這意味著什麼,只需知道“它使繪製速度更快”。