跳转到内容

如何制作Firefox扩充套件

来自维基学院

如果有任何问题,可以上 讨论区 讨论,这个文件如果不够详细,也欢迎各位帮忙补齐。

撰写扩充套件需要了解的技术

[编辑 | 编辑源代码]
  • 不会别玩之绝对基础区
    • HTML
    • JavaScript
    • XML: XUL, RDF (这个不会可以用改的...)
  • 会了更好之薪水加值区
    • CSS
    • XPCOM (可以用以联结程式,补强 JavaScript 做不到的事情)

扩充套件档案格式

[编辑 | 编辑源代码]

扩充套件使用 XPI 档来安装。Firefox 可以直接读取这个档案,然后以 Extension Manager 安装扩充套件。xpi 其实就是一个 zip 格式的压缩档,你可以用解 zip 格式的解压缩程式解压缩。如果你还没有适当软体,推廌使用 7-zip,这是一套自由软体,同时也支援 zip 格式。

档案架构

[编辑 | 编辑源代码]

xpi 解开之后的内容范例如下:

    install.rdf                  
    chrome/extension.jar  <-  這是壓縮檔哦!!      
    components/extension.xpt
    components/extension.js
    defaults/extension.properties
    defaults/preferences/extension.js
  • install.rdf: 必备,描述档案安装资讯。
  • chrome 目录: 必备目录,存放主程式。
    • extension.jar: 通常 chrome 里都会放 .jar 压缩档,内含主程式的 XUL、JavaScript、locale、skin 等档案,容后详述。
  • components 目录: 可有可无,放置有关 XPCOM 的档案。
  • defaults 目录: 可有可无,放置套件相关偏好设定的档案。

extension.jar

[编辑 | 编辑源代码]

当然不是一定得叫做“extension.jar”,总之是个 .jar 格式的档案。这也是压缩档,里头包含扩充套件的主要程式,解开后内容范例如下:

        content/套件名稱/extension.xul
        content/套件名稱/extension.js
        locale/套件名稱/extension.dtd
        skin/套件名稱/extension.css
  • content 目录: 存放扩充套件主程式,包含 xul、javascript 等档案。
  • locale 目录: 存放语系档,依照语言名称各辟子目录 (如 locale/zh-TW 就是正体中文的)
  • skin 目录: 存放布景主题等外观元素。

并非每个扩充套件里都会有 .jar 档,所以你打开 chrome 目录后也可能看到某个子目录、里面直接就放著这些档案。


install.rdf

[编辑 | 编辑源代码]

这个档案是一定要有的,因为 Firefox 会先抓这个档案,来确认那些档案要放到那里,你会看到有的扩充套件的 xpi 解开后,主目录下会有 install.js ,那是给 mozilla 看的。


撰写流程建议

[编辑 | 编辑源代码]

假设你已经有想法,也经过系统分析/设计流程后,以下是我们建议撰写步骤。

  1. 先把会用到的目录建立好。通常主程式都放在 content 目录下、css 档和图档放在 skin 下、语系档则放在 locale 下。当然一开始写的时候全部丢 content 也不要紧,只是记得良好架构应该如上述配置。
  2. 撰写 .xul,描述程式界面。
  3. 撰写 .js,描述程式主功能。
  4. (选用) 将 .xul 及 .js 中的字串抽出,放在 locale 目录下引用。
  5. (选用) 将 .xul 中的样式抽出以 .css 表现,放在 skin 目录下引用。
  6. 撰写 install.rdf 档。
  7. (选用) 为扩充套件加签,证明其合法身分
  8. 包装为 XPI

最极端的扩充套件甚至可能仅用一个 XUL 档解决,所以怎么抽出 .js、语系档、.css 就看你的决定。

辅助发展工具

[编辑 | 编辑源代码]
  • DOM Inspector。Firefox 内建好玩意,有观察 XUL 架构等功能,可少去很多摸索时间。
  • Venkman: 这是一套 javascript 专用的 debuger
  • Extension Dev: 专门用来发展 extension 的工具,而且是用 Extension Manager 来安装,装好后就有很多好用的工具可以用,尤其是撰写 XUL 界面时。

相关资源

[编辑 | 编辑源代码]
  • 官方文件,特色是又臭又长不过连概念都会讲给你听
  • 民间文件,各有特色

参考来源

[编辑 | 编辑源代码]