MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

We are planning to deprecate the use by Firefox add-ons of the techniques described in this document.

Don't use these techniques to develop new add-ons. Use WebExtensions instead.

If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions instead.

Add-ons developed using these techniques might not work with multiprocess Firefox (e10s), which is already the default in Firefox Nightly and Firefox Developer Edition, and will soon be the default in Beta and Release versions of Firefox. We have documentation on making your add-ons multiprocess-compatible, but it will be more future-proof for you to migrate to WebExtensions.

A wiki page containing resources, migration paths, office hours, and more, is available to help developers transition to the new technologies.

本文列出了许多关于如何通过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,