Firefox 3.6 開發者版
Firefox 3.6 提供了對新的和不斷發展的 Web 標準的支援、更高的效能,以及為 Web 使用者和開發者帶來了整體更好的體驗。此頁面提供了指向介紹 Firefox 3.6 新功能的文章的連結。
對於網站和應用程式開發者
CSS
- 使用漸變
-
Firefox 3.6 新增了對
background屬性的提議的-moz-linear-gradient和-moz-radial-gradient屬性的支援。 - 多重背景
-
background屬性(以及background-color、background-image、background-position、background-repeat和background-attachment)現在支援多重背景。這允許你指定多個背景,它們以圖層形式彼此堆疊渲染。 - Mozilla 特定的媒體特性
-
已添加了 Mozilla 特定的系統度量的媒體特性,以便可以使用 媒體查詢 更安全地檢查觸控支援等功能的可用性。
- 縮放背景影像
-
CSS 3 背景和邊框草案 中的
background-size屬性現在以-moz-background-size的名稱獲得支援。 - WOFF 字型支援
-
@font-face現在支援 WOFF 可下載字型檔案格式。 - 指標事件
-
pointer-events屬性允許內容指定元素是否可以是滑鼠指標事件的目標。
雜項 CSS 更改
- 現在支援
rem長度單位。Firefox bug 472195 image-rendering屬性支援影像、背景影像、影片和畫布。Firefox bug 423756- 現在支援
text-align:end。Firefox bug 299837 - 使用表格
display型別的元素的 DOM 更改現在工作得更好。 - 添加了
:-moz-locale-dir(ltr)和:-moz-locale-dir(rtl),以便根據使用者介面是使用從左到右還是從右到左的語言環境顯示,更容易自定義佈局。Firefox bug 478416 - 添加了對
:indeterminate偽類的支援,該偽類匹配indeterminate屬性為true的checkboxinput元素。 - 視窗化外掛不再顯示在 CSS 變換中,因為它們無法被合成器正確變換。
HTML
- 使用 Web 應用程式中的檔案
-
Gecko 中新增了對新的 HTML5 檔案 API 的支援,使 Web 應用程式能夠訪問使用者選擇的本地檔案。這包括透過
input type="file"HTML 元素的新multiple屬性選擇多個檔案的支援。 - HTML5 影片支援海報幀
-
現在
video元素支援poster屬性,允許內容指定一個海報幀,在影片開始播放之前顯示。 -
HTML
input型別為checkbox和radio的元素現在支援 indeterminate 屬性,該屬性允許第三種“不確定”狀態。 - 畫布影像平滑可控
-
新的
mozImageSmoothingEnabled屬性可用於在canvas元素中縮放時開啟和關閉影像平滑。 - 非同步指令碼執行
-
透過在
script元素上設定async屬性,script將不會阻止頁面其餘部分的載入或顯示。相反,script在下載後立即執行。
JavaScript
Gecko 1.9.2 引入了 JavaScript 1.8.2,其中添加了來自 ECMAScript 5 標準 的許多語言特性
Date.parse()現在可以解析 YYYY-MM-DD 格式的 ISO 8601 日期。- 函式例項的
prototype屬性不再可列舉。
DOM
- Web Worker 現在可以自我終止
-
Worker 現在支援
nsIWorkerScope.close()方法,該方法允許它們自我終止。 - 拖放現在支援檔案
-
提供給拖動監聽器的
DataTransfer物件現在包含被拖動的檔案列表。 - 檢查元素是否匹配指定的 CSS 選擇器
-
新的
Node.mozMatchesSelector方法允許您確定元素是否匹配指定的 CSS 選擇器。請參閱 Firefox bug 518003。 - 檢測裝置方向
-
如果裝置具有受支援的加速計,內容現在可以使用
MozOrientation事件檢測裝置的方向。Firefox 3.6 支援 Mac 筆記型電腦中的加速計。 - 檢測文件寬度和高度變化
-
每當文件的
scrollWidth和/或scrollHeight屬性發生變化時,都會分發新的MozScrollAreaChanged事件。
雜項 DOM 更改
getBoxObjectFor()方法已被移除,因為它不符合標準,並且向 Web 暴露了更多不符合標準的內容。請參閱 Firefox bug 340571。這也影響了使用此呼叫進行 Gecko 檢測的 MooTools;此問題已在最新版本的 MooTools 中修復,因此請務必更新。- DOM 視窗上新增了
mozInnerScreenX和mozInnerScreenY屬性;這些屬性返回視窗視口左上角的螢幕座標。 nsIDOMWindowUtils介面上的新mozScreenPixelsPerCSSPixel屬性(僅限於 Chrome 訪問)提供了 CSS 畫素和螢幕畫素之間的轉換因子;此值可能因內容的縮放級別而異。- 當頁面的 URI 的文件片段識別符號(“#”(雜湊)字元後面的部分)更改時,會向頁面傳送新的
hashchange事件。有關更多資訊,請參閱hashchange事件。Firefox bug 385434 - 現在支援屬性
document.readyState。Firefox bug 347174 - 支援 HTML5 的
element.classList以便更輕鬆地處理 class 屬性。Firefox bug 501257 - HTML 文件中的
localName和namespaceURI現在行為與 XHTML 文件中的行為相同:localName返回小寫,HTML 元素的namespaceURI為"http://www.w3.org/1999/xhtml"。 element.getElementsByTagNameNS不再將其引數轉換為小寫,因此引數中的大寫 ASCII 字母會導致與 HTML 元素的匹配失敗。document.getElementsByTagNameNS也是如此。- 已新增對透過
nsIDOMGeoPositionAddress介面和新增到nsIDOMGeoPosition的新欄位進行地理位置地址的支援。 window.getComputedStyle函式現在返回url()值中的引號。
XPath
對於 XUL 和附加元件開發者
如果您是擴充套件程式開發者,應首先閱讀 更新 Firefox 3.6 的擴充套件程式,其中概述了哪些更改可能會影響您的擴充套件程式。外掛開發者應閱讀 更新 Firefox 3.6 的外掛。
新功能
- 檢測裝置方向
-
如果裝置具有受支援的加速計,內容現在可以使用
MozOrientation事件檢測裝置的方向。Firefox 3.6 支援 Mac 筆記型電腦中的加速計。 - 監視 HTTP 活動
-
您現在可以監視 HTTP 事務,即時觀察請求和響應。
- 使用 Windows 工作列
-
現在可以在 Windows 7 或更高版本的工作列中自定義視窗的外觀。這在 Firefox 3.6 中預設停用。
地點
- Places 查詢現在可以在
nsINavHistoryQueryOptions介面上使用redirectsMode屬性來指定是否在結果中包含重定向頁面。 - 在
nsIFaviconService介面中添加了新的nsIFaviconService.expireAllFavicons()方法。
Storage
- 儲存 API 現在支援區域設定感知資料排序
-
Gecko 1.9.2 添加了幾個新的排序方法,以使用區域設定感知技術提供最佳化的結果排序(collation)。
- 現在可以列舉語句上的屬性
-
您現在可以使用
for...in列舉來列舉語句上的所有屬性。 - mozIStorageStatement 的 getParameterIndex 在 3.5 和 3.6 之間改變了行為。
-
有關詳細資訊,請參閱 Firefox bug 528166。
- 非同步繫結多組引數並執行語句。
-
有關詳細資訊,請參閱 Firefox bug 490085。文件即將推出。
偏好
nsIContentPrefService介面有兩個新方法:nsIContentPrefService.getPrefsByName()和nsIContentPrefService.removePrefsByName()。
主題
有關主題相關的更改列表,請參閱 更新 Firefox 3.6 的主題。
雜項
- Firefox 將不再載入安裝在其內部元件目錄中的第三方元件。這有助於透過阻止有錯誤的第三方元件執行來確保穩定性。以這種方式安裝元件的開發者必須將他們的元件重新打包為 XPI 包,以便它們可以作為標準附加元件安裝。
contents.rdf不再支援在擴充套件程式中註冊 chrome。現在必須使用chrome.manifest檔案。請參閱 Firefox bug 492008。- 添加了自動隱藏選單欄的支援。請參閱 Firefox bug 477256。
- 添加了對物件
container-live-role屬性的支援。請參閱 Firefox bug 391829。 tabs-closebutton繫結已被移除。請參閱 Firefox bug 500971。- 為
nsISound添加了根據已發生的事件播放聲音的支援。請參閱 Firefox bug 502799。 nsITreeView方法nsITreeView.canDrop()和nsITreeView.drop()的語法已更改,以支援 Gecko 1.9 中引入的新拖放 API。請參閱 Firefox bug 455590。- 添加了將滑鼠游標捕捉到 Windows 對話方塊或嚮導的預設按鈕的支援,請參閱 Firefox bug 76053。這由對話方塊和嚮導元素自動處理。但是,如果 XUL 應用程式使用
window元素建立視窗,並且它具有預設按鈕,則需要在視窗的onload事件處理程式中呼叫nsIDOMChromeWindow.notifyDefaultButtonLoaded。 nsILocalFileMac介面已移除兩個方法:setFileTypeAndCreatorFromMIMEType()和setFileTypeAndCreatorFromExtension()。- 新的
NetUtils.jsm程式碼模組提供了一種易於使用的方法,用於非同步地將資料從輸入流複製到輸出流。 - 新的
openLocationLastURL.jsm程式碼模組使得讀取和更改“開啟位置”對話方塊中記住的 URL 的值變得容易,同時正確考慮了隱私瀏覽模式。 - 在 Windows 上,當圖形驅動聲稱是 32 位時,
nsIScreen介面現在報告 24 位每畫素的顏色深度,因為 24 位更準確地表示實際使用的顏色畫素數量。 - 選單欄現在可以在 Windows 上隱藏,使用
<xul:toolbar>XUL 元素上的新autohide屬性。 loadOneTab和addTab方法現在接受一個新的relatedToCurrent引數,此外,還允許按名稱指定引數,因為幾乎所有引數都是可選的。- 安裝清單中不再支援“hidden”屬性;使用者不再可能阻止在附加元件管理器視窗中看到附加元件。
@mozilla.org/webshell;1元件不再存在;您需要使用@mozilla.org/docshell;1。- 您現在可以使用 update-timer 類別註冊,以安排計時器事件,而無需例項化計時器最終將呼叫的物件;它將在需要時例項化。有關詳細資訊,請參閱
nsIUpdateTimerManager.registerTimer()。 NPN_GetValue()函式不再透過變數值NPNVserviceManager、NPNVDOMelement和NPNVDOMWindow提供對 XPCOM 的訪問。這是為了使外掛在未來版本的 Gecko 中在單獨的程序中執行的工作的一部分。- 外掛不再可以透過 XPCOM (IDL) 介面進行指令碼編寫,NPRuntime 是用於使外掛可指令碼編寫的 API,並且不再使用
NPPVpluginScriptableInstance或NPPVpluginScriptableIID值呼叫NPP_GetValue()。這是為了使外掛在未來版本的 Gecko 中在單獨的程序中執行的工作的一部分。
對於 Firefox/Gecko 開發者
某些更改只有在您從事 Firefox 內部工作時才真正有趣。
介面合併
以下介面已合併
nsIPluginTagInfo2已合併到nsIPluginTagInfo中。nsIPluginInstanceInternal、nsIPPluginInstancePeer、nsIPluginInstancePeer1、nsIPluginInstancePeer2和nsIPluginInstancePeer3都已合併到nsIPluginInstance中。nsIWindowlessPlugInstPeer已合併到nsIPluginInstance中。nsIPluginManager和nsIPluginManager2已合併到nsIPluginHost中。
介面已刪除
以下介面已完全移除,因為它們未被使用、未實現或已過時
nsIFullScreennsIDOMSVGListenernsIDOMSVGZoomListenernsIInternetConfigServicensIDKeynsIEventHandlernsIJRILiveConnectPIPeernsIJRILiveConnectPluginnsIScriptablePluginnsIClassicPluginFactorynsIFileUtilities
介面已移動
以下介面已從其以前的 IDL 檔案重新定位到新的 IDL 檔案中
nsIDOMNSCSS2Properties現在位於其自己的 IDL 檔案中 (dom/interfaces/css/nsIDOMCSS2Properties.idl)。nsIUpdateTimerManager現在位於其自己的 IDL 檔案中。
大量介面已被移動。有關完整列表,請參閱 Firefox 3.6 中移動的介面。
其他介面更改
已進行以下各種更改
nsIPlugin介面現在繼承自nsISupports而不是nsIFactory。nsIPluginHost介面現在繼承自nsISupports而不是nsIFactory。nsIFrame介面現在繼承自nsQueryFrame而不是nsISupports。nsIDeviceContext方法getPaletteInfo()已移除,因為它從未實現。nsIScriptContext方法reportPendingException()已移除,因為它不再被使用。
無障礙程式碼更改
- 當框架和 iframe 的子元素更改時,以及當主文件的子元素更改時,現在會發送
EVENT_REORDER無障礙事件。請參閱 Firefox bug 420845。 nsIAccessibleTable.selectRow()現在在選擇指定行之前正確地移除了所有當前選擇。