準備做一個Firefox插件,用來接收從WEB頁面傳遞的參數,根據這些參數從服務器上下載一些文件到本地,并調起本地的一個應用程序。
以前在IE中是使用一個ActiveX來實現的。FF的插件從來沒有做過,不知道將來會遇到多少困難。
在網上發現一個頁面:http://ted.mielczarek.org/code/mozilla/extensionwiz/,它提供了一個FF擴展的生成向導,填寫完必要信息后,會生成一個zip文件。之后我改名為xpi后,丟到我的FF 3.0中,提示不正確的安裝包。看來這個向導針對FF3還有些問題。具體問題是什么?現在還不清楚。讓我來繼續尋找資料……
在Mozilla網站上了解到,FF的Extension和Plugin是兩種概念的東西:
Extension就是一個zip包,里面有規定的一些必要文件。這個可以下載幾個插件看一下他們的目錄結構就好了。我下載了一個 QuickNote,看了一下,主要包括一個install.rdf(安裝包相關信息和文件資源路徑等配置)、chrome.manifest(設置各種XUL文件路徑以及其他的一些資源文件路徑)、chrome文件夾(里面放著插件的所有源文件),不過chrome文件夾里面的文件我還沒有過多研究。
Plugin好像是另外一碼事了,在Mozilla Developer Center的Plugin開發介紹文中有這么一句:Plugins are different from extensions, which modify or enhance the functionality of the browser itself. Plugins are also different from search plugins, which plug additional search engines in the search bar. (插件與擴展不同,它更改或者改善了瀏覽器自身的功能。插件與搜索插件又不同,搜索插件在搜索工具欄上添加了額外的搜索引擎。)
我的理解,插件可以讓你在FF中使用自己的View來展示、用自己編寫的二進制文件來做某些事情,不僅僅是利用FF自身支持的一些特性和功能。而擴展相對來說就不需要這些東西,只利用FF的開發API就好了。
這樣看來,要實現我開始提到的需求,似乎可以開發一個Extension就可以了。Foxmarks Bookmark Synchronizer(FBS)也差不多是我的需求這種感覺:將本地某些數據上傳至服務器,從服務器同步下載一些數據到本地。FBS既然是一個擴展能夠實現,那么看來我暫時不用研究Plugin了,呵呵。
OK,有了大概的目標。下面開始制訂學習計劃!
通過研究別人寫的Extension,里面有很多js、css、images、html,這些應該還好理解,但是多了一些后綴名為xul的文件。這是什么東西?看來想開發Extension,這個文件需要好好研究一下。
因此,我的第一個學習計劃就是搞清楚XUL是什么,什么地方要用XUL,以及怎么寫XUL?
先說到這里,下一小節我來寫一些XUL的學習歷程。