我们即将放弃这篇文档中描述的 Firefox 附加组件技术。

请勿使用下列技术开发新的附加组件。请改用 WebExtension 代替。

如果您在维护使用下列技术的附加组件,请考虑将其迁移为使用 WebExtensions 技术。

使用下列技术开发的附加组件可能不适用于多进程 Firefox(e10s),它已在 Firefox Nightly 和 Firefox Developer Edition 中默认启用,并很快将遍及 Firefox 的公测版(Beta)和正式版。我们准备了制作多进程兼容的附加组件的文档,但迁移到 WebExtension 是更加着眼于未来的选择。

有关的 wiki 页面写有协助开发人员过渡到新技术的有关资源、迁移路径、办公时间等信息

本文列出了许多关于如何通过SDK完成特定任务要求的实际动手的文章。


开发之旅

安装
在Windows, OS X和Linux上下载,安装,初始化SDK工具。
常见问题
解决常见问题的建议和获取更多帮助。
快速开始
走马观花地使用SDK开发一个简单的扩展

创建用户交互界面

添加一个工具按钮
添加一个按钮到火狐Add-on工具栏。
添加一个菜单选项到火狐
添加多个菜单选项到火狐主菜单。
显示一个弹出对话框
通过HTML和JavaScript实现并显示一个弹窗对话框。
添加一个上下文菜单
添加一个上下文菜单(一般都是右键菜单)到火狐浏览器

与浏览器交互

打开Web页面
在一个新的浏览器选项卡里打开一个Web页面或窗口使用tabs模块并获取内容。
监听页面加载
当新页面载入时使用tabs模块得到通知并获取页面内容。
获取打开的选项卡(Tab)列表
使用tabs模块遍历当前打开的tab,并获取其内容。

更改网页

更改网页通过URL
基于URL过滤网页:当载入的页面的URL与过滤器匹配时执行特定的脚本。
修改页面内容
动态加载脚本到当前页面。

开发技术

日志
在终端中记录日志以便调试。
创建可复用的模块
拆分扩展程序为多个分离的模块,可以使开发调试和维护更加简单。封装你的模块使其成为可复用的包,以便其他开发者可以再次使用。
单元测试
使用SDK的测试框架书写和进行单元测试。
Chrome授权
获得Components对象,使你的扩展程序能够加载和使用任何XPCOM对象。
创建事件目标
使你定义的对象能够响应相关事件。
监听载入和卸载
当你的扩展程序被加载和卸载时获得通知,并从终端传递参数给扩展程序。
使用第三方模块
安装和使用与SDK无关额外的模块
本地化
书写本地化代码.
移动开发
为Andriod上的火狐浏览器开发扩展程序。
扩展调试
调试扩展应用的JavaScript。

打包

扩展应用:Annotator
一起开发一个相对复杂的扩展应用。

加入 Add-on SDK 社区

请选择你喜欢的方式加入我们:

文档标签和贡献者

标签: 
 此页面的贡献者: lixuanh, GrayLight, zaobao, addOn, yse_an, ziyunfei, Integ, wbamberg
 最后编辑者: lixuanh,