我的玻璃盒子

【原创】我的Firefox插件开发之旅(1)——从零开始

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

posted on 2008-11-07 13:26 深蓝色系统 阅读(29587) 评论(3)  编辑 收藏 引用 所属分类: Firefox开发

评论

# re: 我的Firefox插件开发之旅(1)——从零开始 2009-01-22 13:25 li jian

呵呵,我对firefox的插件开发很感兴趣,刚才看了您开发的过程,有很多地方不明白,我qq250273420,如果您有空的话,给我联系好么?想请教您一些问题
  回复  更多评论   

# re: 我的Firefox插零开始 2009-04-27 13:12 wuSpark

最近也在做Firefox插件开发,一样从零开始
你的文章对我很有帮助:)  回复  更多评论   

# re: 【原创】我的Firefox插件开发之旅(1)——从零开始 2011-02-03 09:51 iamk

你好,有没有手册或文档之类的供下载参考?
我的网站 www.dianziyan203.com  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿(75)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜