FireFox插件開發過程

FireFox插件實現包含以下技術:JS、CSS、XUL和XPCOM,對於熟悉web開發的人,JS和CSS並不陌生;而XUL和XPCOM恐怕沒有接觸過。

XUL(XML-based User-interface Language)是基於XML的用戶界面語言,定義了很多適用於Mozilla瀏覽器的圖形用戶界面的標籤,如window、dialog、menu等。

XPCOM(Cross-Platform Component Object Model)是用於開發獨立於平臺的構件開發框架,可以使用JS或C++開發。


下面我將會給出一個開發FireFox插件的簡單實例,用於說明FireFox插件的開發過程。
(1)配置文件
配置文件主要包括清單(manifest)文件和安裝(RDF)文件,其中清單文件定義了覆蓋(overlay)文件、國際化文件、頁面樣式文件的位置及存放這些文件的目錄結構等,而安裝文件定義了插件在安裝過程中顯示的名稱、描述、版本、適合的相關Mozilla應用的版本號等,同時定義了插件的類型。
如下爲例子中清單文件和安裝文件的定義:

清單文件chrome.manifest

安裝文件install.rdf

(2)XUL文件
由於在清單文件中定義了overlay文件的位置,overlay文件定義了將插件覆蓋到Mozilla應用中的位置。
如下爲例子中覆蓋文件和相關XUL文件的定義:

覆蓋文件overlay.xul

相關XUL文件XMLHTTPRequest.xul

文件XMLHTTPRequest.xul引用的腳本文件xmlhttpRequest.js

相關XUL文件XPCOMRequest.xul

 

文件XPCOMRequest.xul引用的腳本文件xpcomRequest.js

(3)定義構件
可以使用Mozilla應用(如FireFox)本身提供的構件實現相應功能,如使用@mozilla.org/xmlextras/xmlhttprequest;1 獲取XMLHttpRequest對象,其中構件名稱定義的順序爲:@域名/模塊名/構件名;版本;我們還可以通過JS或C++定義自己的構件,可以定義新的接口或者使用已有的接口,然後使用JS或C++實現。
如下爲使用JS定義構件接口和實現的定義:

接口定義文件HelloWorld.idl

使用命令接口定義文件進行編譯:

D:/extensions/xulrunner-1.9.2.13.en-US.win32.sdk/xulrunner-sdk/bin>xpidl -m type
lib -w -v -I D:/extensions/xulrunner-1.9.2.13.en-US.win32.sdk/xulrunner-sdk/idl
-e HelloWorld.xpt D:/extensions/xulrunner-1.9.2.13.en-US.win32.sdk/xulrunner-sdk
/idl/HelloWorld.idl

接口實現文件HelloWorld.js

 

注意:如果自己定義構件,默認配置下需要將構件定義文件放到components文件夾下。

 

(4)打包成xpi文件
目前的目錄結構如下:

打包成zip文件,再將zip擴展名改爲xpi,雙擊此文件可以將該插件安裝到Mozilla應用上,如FireFox。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章