准备做一个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的学习历程。