在Firefox中,扩展(Extension) 就是一个 zip 包,里面有规定的一些必要文件,主要包括一个 install.rdf(安装包相chrome.manifest(设置各种 XUL 文件路径以及其他的一些
关信息和文件资源路径等配置)、资源文件路径)、chrome 文件夹(里面放着插件的所有源文件)。
XUL 是一个支持多种 WEB 技术的、基于 XML 的界面开发语言。它既可以在远程执行,也可以安装到本地执行。在 XUL 中内置了很多界面元素,如菜单、按钮、分页等等,这样就不需要自己编写很多 JS 来维护和控制很多界面元素了。而且,这些界面是按照当时的 OS 外观来展现的,比如同一个按钮,在 MacOS 上和 Windows 上看起来就不一样。另外 XUL 也允许自己使用 JS 和 CSS 来定制自己的个性化界面。总之一句话,XUL 的主要作用就是用来展现 Extension 的用户交互界面的。
通过这个链接 https://developer.mozilla.org/en/Building_an_Extension的相关介绍,可以找到编写一个插件必须要做得一些事情,写的很清楚。最后产生的目录和文件结构是这个样子:
install.rdf
chrome.manifest
chrome
|–content
|–overlay.xul (插件功能的实现)
|–locale
|–en-US
|–sample.dtd
|–zh-CN
|–sample.dtd
|–zh-TW
|–sample.dtd
|–skin
|–classic
|–sampleicon.png
|–smallicon.png
|–default.css (界面显示的样式表)
上面文件中的 install.rdf、chrome.manifest 基本上用例子中的就好了,dtd 文件里面是界面文字,这个可以模仿其他插件编写。
把上面整个目录用 zip 打个包,改后缀名为 xpi,拖放到 firefox 中,提示尚未验证作者、是否继续安装。安装以后,重启 firefox,第一个 Extension就成功安装了!