基于Addon-SDK开发火狐扩展
时间:2014/10/27
火狐版本:33.0
一,在Windows上安装Addon-SDK
1,首先确定已经安装有Python,我电脑上安装的是Python 2.7.7:
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
二,采用Addon-SDK开发的简单扩展示例
继续在前面activate命令提示栏下执行命令:
(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中右键-》新建-》布尔即可。
参考:http://blog.csdn.net/ugg/article/details/6759571
转载请保留地址:http://www.lenky.info/archives/2014/10/2447 或 http://lenky.info/?p=2447
备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来信讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。
法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。
想请教一下 关于main函数跟 自己写的JS函数该如何交互呢