Why Firefox?
如果有人问我为什么用Firefox[1],首先毫无疑问的是它代表了开放和自由的精神,其次嘛,我会说是它的可
扩展性。
Firefox最激动人心的特点就是它提供了开放的接口,你可以使用这些接口来做各种
应用,完成各种各样的
功能。你应该不曾给IE添点什么吧,
微软不见得这么大方能告诉你什么有用的东西。他最慷慨的事就是给你一个COM组件,记得我对IE的最高级的应用,就是在一次
网络大作业中,把整个IE嵌在我的程序里,仅此而已。而Firefox则不同了,当你看到了Fireftp就知道我在说什么了。
请合上你的下巴,这没有什么值得惊讶的。这就是Firefox,中间那个cool的ftp工具只是它的一个扩展(Extesion)而已。
想做一个这样的东东吗?我不会告诉你到底有多难,因为这不是我
开发的,有兴趣的话你可以自己试一试,网址是http://fireftp.mozdev.org/ 。
类似的扩展还有很多,你可以到mozilla的扩展库去看看,据官方
统计,到2005年11月9日,(忘了告诉你了,2004年11月9日是Firefox的诞生日,也就是说它还只是一个小baby),用户至少可以使用700个扩展(Extension)或者附件(Add-on)。可见Firefox的扩展发展是多么的迅速!
以前我在99%的时间内使用Firefox,另外1%的时间使用IE浏览一些不遵从W3C标准而非用IE不可的垃圾
网站,我们学校的BBS很不幸地成为其中一员。但是现在我在100%的时间内使用Firefox,这归功于一个ie tab[2]的Firefox扩展。所幸随着网络标准的日渐被重视,Firefox有可能会支持所有的网站。 :)
好了,说了这么多Firefox扩展的好处,是不是有点心动了呢?那么就用一个Hello World来开始我们的第一个Firefox扩展吧。别说我太不in了,毕竟hello world总是最容易让我们使所有编程语言的开场白,不是吗?
Here we go!
认识Firefox的扩展
Firefox扩展的功能
从功能来说,Firefox扩展应该是用户和
浏览器内核交互的一种体系结构。扩展可以满足用户一些特定的需要,实现特定的功能。开发者可以使用内核提供的一些用户接口,编写自己的实现
代码,完成自己设想的功能。
Firefox扩展的格式
从开发的角度来讲,Firefox的扩展是一个文件目录的集合,它们按照一定格式和规范编写和排布的。最终,发布给用户的是一个xpi包。别感到奇怪,这个xpi文件和那些jar[3]的文件一样,都是zip格式的压缩文件。所以这下你懂了吧,把你做完的文件按照zip格式压缩一下就成了我们的扩展包了。
那么究竟具体的xpi文件中是什么情景的?解开我提供的helloworld.xpi文件包,你会发现文件目录的排布如下所示。其中树型结构的叶子部分都是文件,其他的中间结点都是目录。
HelloWorld.xpi