C:\Users\Lenky>python --version
Python 2.7.7
2,Addon-SDK在这里 https://addons.mozilla.org/en-US/developers/tools/builder下载
进入到sdk解压目录,执行命令:
C:\Users\Lenky>cd D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17
C:\Users\Lenky>d:
D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17>bin\activate
Welcome to the Add-on SDK. For the docs, visit https://addons.mozilla.org/en-US/developers/docs/sdk/latest/
(D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17>
命令activate会修改一些使用Addon-SDK所必须的环境变量,后续操作都将在这里进行。
参考: https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Installation
(D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17>mkdir my-addon (D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17>cd my-addon (D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17\my-addon>cfx init * lib directory created * data directory created * test directory created * generated jID automatically: jid1-whxWY9a308x9KA * package.json written * test/test-main.js written * lib/main.js written Your sample add-on is now ready. Do "cfx test" to test it and "cfx run" to try it. Have fun! (D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17\my-addon>
完成扩展插件的初始代码,下面就可以根据我们自己业务逻辑的需要对代码进行修改。这里仅做过测试,修改lib\main.js文件,加上如下代码:
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Visit Mozilla",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("https://www.mozilla.org/");
}
上面的sdk-api函数可以参考: https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs
https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs
https://developer.mozilla.org/en-US/Add-ons/SDK接着保存下面三张图片到data目录:
icon-16.png
icon-32.png
icon-64.png
之后在命令行里执行:
(D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17\my-addon>cfx run Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'. Using profile at 'c:\users\lenky\appdata\local\temp\tmpuo8bc8.mozrunner'.
上面cfx run命令会打开一个新的火狐实例窗口,并且刚写的扩展也已经被加载了。

点击扩展按钮,即可打开网址: https://www.mozilla.org/

三,打包&安装在命令提示行按ctrl+c结束执行,再执行:
(D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17) D:\gitlab\ff-ext\addon-sdk-1.17\addon-sdk-1.17\my-addon>cfx xpi Exporting extension to my-addon.xpi.
即可。
在火狐里按快捷键Ctrl+O或菜单选择:File -> Open File…在文件选择对话框里选择打包生成的xpi文件my-addon.xpi,根据提示选择Install安装即可。
参考: https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Getting_started
四,可以调整Firefox的某些参数,方便开发:
firefox的地址栏输入about:config回车,打开配置界面。
参数:javascript.options.showInConsole= true
作用:将chrome文件中的错误显示在Console里。
参数:nglayout.debug.disable_xul_cache= true
作用:关闭XUL缓存,这允许不重启而改变窗口以及对话的内容。这里,可以使用目录而不是Jar。但是Overlay改变后,overlay文档必须重载(这一项非常有用,修改uxl后不用重启窗口)。
参数:browser.dom.window.dump.enabled= true
作用:这将允许dump()函数输出到stdout里。参考window.dump函数。特权应用也可用nsIConsoleService。
参数:javascript.options.strict= true
作用:启用严格JavaScript错误提示,js出错调试可用。
参数:extensions.logging.enabled= true
作用:这将给出更多关于安装以及更新插件的日志信息。
参数:nglayout.debug.disable_xul_fastload= true (仅限Gecko 2.0+ (Firefox 4.0+))
参数:dom.report_all_js_exceptions= true
以上参数有些在你的配置项已经存在,可能设置的状态值不对,修改下即可。有些参数可能没有,需要你手动创建这些参数和值。只需要在list中右键-》新建-》布尔即可。