Firefox扩展一个xpi的目录结构 [转]

本文详细介绍了Firefox扩展的xpi文件目录结构,包括chrome目录、components、defaults、install.js、install.rdf和chrome.manifest等关键部分。chrome目录下的jar文件包含了扩展的主要功能,components用于存放XPCOM组件,defaults用于默认设置,install.js和install.rdf分别作为安装脚本和扩展信息描述。chrome.manifest文件用于注册扩展。此外,文章提到了content、local和skin子目录的作用,content存储逻辑和XUL文件,local处理多语言,skin则负责界面样式。最后,指出最简单的扩展目录结构,并预告将逐步讲解如何创建Firefox扩展。
[原文:http://www.cnitblog.com/yemoo/archive/2008/07/10/46535.html  ]
xpi文件就是firefox能够识别的扩展文件,将xpi安装到firefox的方法比较多,而且挺简单的,以后介绍。
将xpi文件以WinRAR或者WinZip打开并解压,可以得到如下目录结构:
/chrome
/components
/defaults
/install.js
/install.rdf
/chrome.manifest
这是顶层的目录结构,在chrome目录下还会有重要的东西,逐一介绍:
        chrome 是Mozilla 规定扩展必须具备的目录,其中包含一个jar文件,为什么是jar呢?天知道Mozilla为什么要和Sun的Java这样纠缠不清!而实际上,他只是作 为一种压缩结构而存在,就像zip包,rar包一样,只不过他是以Zip为压缩包结构,以.jar为扩展名。这个包里保存着完成扩展主要功能的文件。
        components 文件夹用于存放自定义的 XPCOM 组件文件,就是将xpt和dll文件放在里面,上一片blog里说的install.js放在外面~。由于javascript功能还是挺强大的,一般简 单的功能是可以完成的,所以这个目录是可选的,我现在在做的项目要用通过xpcom使用一些别的库,所以就要用到xpcom,就会有这个目录。
        defaults据说是负责存放一些默认的设置数据,我们现在正在做调研,东西做的还比较简单,没用到这个文件夹,当然这个文件夹也是可选的。
        install.js 文件,作为一种安装脚本,他已经被Mozilla新的技术所代替,就是我们看到的另一个文件——install.rdf,但是这个js文件还是有他的作用 的,比如将components文件夹里的xpt和dll通过xpinstall的api搬运到firefox的特定文件目录中去。
        install.rdf 文件,用于描述当前扩展的注册信息和附加信息等。在firefox的扩展软件中找到我们安装的扩展,右键点出关于,about对话框里的信息都是出自这个 文件,安装扩展的时候,firefox会自动分析这个文件,提取例如扩展名,版本号,作者之类的信息到系统中。
        chrome.manifest文件负责将扩展的各种包注册到 Mozilla 的 chrome 系统中。可以理解为一个注册文件。
        再来说一下chrome文件夹里的内容——jar文件包,解压这个包会得到三个目录:
/content
/local
/skin
        content用于存放overlay或者Dialog、window这样的xul文件和负责控制逻辑响应事件的javascript文件。这个文件夹是必不可少的,我们扩展的核心内容就在这个文件夹中。
        local是本地化文件夹,当我们想支持多语言的时候,会用的到,由于我们要做对英语和日语的支持,说以会用到这个文件夹下的内容,以后会详细介绍的。
        skin 文件夹是用于存储负责美化界面外观的样式表文件和图片文件,这些文件中的样式和图片会被 content 目录中的文件所引用,这点是初学者很不容易搞定的!content文件夹下的xul文件会用到!他们定义一个标示(ID),然后在本文件中什么也不做了! 这点让我郁闷了一个上午,找啊找,翻啊翻的,结果在skin文件夹下的css文件中找到了!而css文件像一个桥梁一样,将skin中的图片文件与xul 中的标签联系在一起!这个下一篇blog介绍。
       这样,一个xpi的基本目录就介绍完了!搞不明白为什么要分这老些文件夹,但是将content(实现)和skin(资源)分开会有他的好处的,至少很清晰!
       做最简单的扩展你只需要这样的目录结构:
                /chrome
                      ---/content
                                 ---/XXX.xul和XXX.js
                /install.rdf
                /chrome.manifest
       其实要做一个简单的扩展也不会那么难,以后的4篇blog我会依次介绍如何简单扩展我们可爱的firefox,状态栏,工具栏,菜单,还有定制工具栏那个面板。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值