為 Firefox 3.6 更新擴充套件
本文為擴充套件開發者提供了關於如何正確更新其擴充套件以相容 Firefox 3.6 的有用資訊。
使用者介面更改
右鍵點選元素(包括連結和圖片)不再提供“屬性”選單項。 屬性對話方塊對大多數使用者沒有用處,已被移除。如果您的擴充套件以任何方式與該選單項互動,您將需要修改程式碼自行新增,或直接貢獻自己的上下文選單項。
附加元件包更改
為了能夠在附加元件停用時也顯示其圖示,Gecko 1.9.2 添加了對自動檢測並使用位於附加元件根目錄下的名為 icon.png 的圖示的支援。如果附加元件被停用,或者清單中缺少 iconURL 條目,則會使用此圖示。
HTML 5 合規性改進
DOM Level 2 對 HTML 和 XHTML 文件的檢視已根據 HTML 5 進行統一。
localNameDOM 屬性現在返回 HTML 元素節點的名稱(小寫)。之前,在 HTML 文件中,它返回的是大寫。(DOM Level 1 的tagName在 HTML 文件中繼續返回大寫。)namespaceURIDOM 屬性現在會在 HTML 元素節點上返回"http://www.w3.org/1999/xhtml"。之前,在 HTML 文件中,它返回的是null。- 在 HTML 文件中,
document.createElementNS(null, "FOO")不再建立 HTML 元素節點。在 HTML 文件中,document.createElement("FOO")或document.createElementNS("http://www.w3.org/1999/xhtml", "foo")仍然有效。 - XPath 中的
name和local-name函式返回 HTML 元素的名稱(小寫)。之前,在 HTML 文件中,它們返回的是大寫。
最可能遇到的升級問題是模式 if (elt.localName === "FOO")。
示例:測試一個元素是否為 HTML img 元素
Firefox 3.6,同時支援 text/html 和 application/xhtml+xml
if (elt.localName === "img" && elt.namespaceURI === "http://www.w3.org/1999/xhtml")
Firefox 3.5 和 3.6,僅支援擴充套件提供的 text/html,不包含外部(例如 SVG)指令碼插入的元素
if (elt.tagName === "IMG")
Firefox 3.5 和 3.6,同時支援 text/html 和 application/xhtml+xml
if (elt instanceof HTMLImageElement)
contents.rdf 不再受支援
Gecko 1.9.2 中已移除對過時的 contents.rdf 註冊 chrome 方法的支援,Firefox 3.6 不再支援。這意味著使用 contents.rdf 的附加元件將無法安裝。
確保您的 XPI 中包含 chrome.manifest。
注意:已使用舊的 contents.rdf 方法註冊 chrome 的附加元件,如果已安裝,將繼續正常工作。請確保您透過實際移除並重新安裝附加元件來測試您的附加元件,以確保更新後使用安裝清單進行安裝可以正常工作。