[Firefox附加组件]0001.入门
Firefox 火狐浏览器,拥有最快、最安全的上网体验,并且火狐拥有超过一万个的 扩展(add-ons),提供各种不同的扩展功能,您可以简单的下载、安装这些扩展以增强您的火狐功能,帮助您更好、更个性化的体验网上冲浪。无论是在网上听音乐,看视频,购物,看新闻...的都能找到相应的火狐扩展能帮助您提升体验

开发步骤
1.附加组件有三种不同的创建扩展的方式:
[1].基于 Add-on SDK 的方式 (使用一组高级别的 JavaScript APIs 开发无需重启的扩展。推荐使用)
[2].无需重启扩展的方式 (手动创建无需重启的扩展)
[3].传统方式 (使用 overly 的方式创建传统的扩展)
2.基于 Add-on SDK 的方式,所需配置:
[1].Python 2.5,2.6 或 2.7。 确保你已经安装过Python。
[2].Firefox火狐浏览器(本教程针对最新的浏览器)。
[3].SDK本身:可以获取SDK的最新稳定版本为 tarball压缩包 或zip 文件。
3.Add-on SDK各平台安装:
[1].Mac OS X:使用以下命令通过 homebrew来安装SDK插件工具
brew install mozilla-addon-sdk
[2].Mac OS X/Linux:无论选择哪个方式获取tarball压缩包 或 zip 文件,都要对其解压缩作为根路径,并通过shell/命令提示符切换到SDK的根目录下
tar -xf addon-sdk.tar.gz
cd addon-sdk
#Bash的用户(大多数人都是的)
source bin/activate
#非Bash的用户
#bash bin/activate
上述命令运行完后看到如下结果

[3].Windows: 下载解压后进入SDK目录直接运行
bin\activate
通过上述操作就在各平台搭建好了SDK的运行环境
4.制作启动项
[1].windows:使用 bin\activate\activate.bat批处理脚本脚本,也可以使用命令行setx工具或控制面板激活永久使用。
[2].mac os x/linux:bin\activate\activate bash脚本,还可以在 /bin 目录中创建到cfx 程序的符号链接
ln -s 你的SDK目录/bin/cfx /bin/cfx
在命令窗口输入cfx,检查下

如上图,就SDK完美完美搞定了。
5.安装npm
[1].下载Node.js,并安装。 
[2].添加路径/usr/local/bin/npm 到系统变量$PATH
echo "export PATH=/usr/local/bin/npm:$PATH" >> ~/.bash_profile
6.安装jpm
[1].终端执行下面命令
sudo npm install jpm --global
稍等片刻
至此所有SDK,命令 统统全搞定了,马上来搞个附加组件玩玩。
7.走马观花式的初始化一个空的扩展
[1].初始化。终端窗口中,创建一个新的文件夹。进入新创建的文件夹,最后执行 cfx init 命令
mkdir my-addon
cd my-addon
cfx init
出现如下信息,初始化就完成了。
[2].实现扩展,打开在上一步骤中创建好的 "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("http://www.mozilla.org/");
}
[3].保存以下的三个图标文件到 "data" 文件夹中



[4].回到命令行窗口,执行命令
cfx run
自动打开Firefox,并在工具栏可见Firefox 图标点击即跳转至 Firefox 主页(http://www.mozilla.org/)
[5].打包附件组件,执行命令
cfx xpi
得到如下信息,在my-addon下生成了 my-addon.xpi 文件.
在 Firefox 的 "文件" 菜单中选择 "打开"菜单项。这 将出现一个文件选择对话框:找到 "my-addon.xpi" 文件,打开它并且遵循出现的提示以便安装它,至此大功告成!
SDK及命令工具相关链接
- Firefox: http://www.firefox.com.cn/
- Python: http://www.python.org/
- HomeBrew: http://brew.sh/
- Add-on SDK: https://ftp.mozilla.org/pub/mozilla.org/labs/jetpack/jetpack-sdk-latest.tar.gz
- Node.js: https://nodejs.org/en/

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4801079.html
[Firefox附加组件]0001.入门的更多相关文章
- 如何给Firefox附加组件签名
如何给Firefox附加组件签名 https://developer.mozilla.org/zh-CN/Add-ons/Distribution 2.打开https://addons.mozilla ...
- Evernote Clearly :: Firefox 附加组件
Evernote Clearly :: Firefox 附加组件 Evernote Clearly 10.1.1.2 作者: Evernote Evernote Clearly 可使博客贴文.文章和网 ...
- 访问不了firefox附加组件页面怎么办
最近重新使用火狐浏览器的时候发现访问不了firefox附加组件页面了,一直是一个空白的页面,估计是被墙的原因,于是网上查了查,说是修改hosts即可,我修改后就可以正常访问了.现在分享出来: 在hos ...
- 推荐一些我所用的firefox 附加组件。
firefox之所以强大,很大程度上是因为它有着超多的扩展组件,来实现许多有趣的功能.这几天把我装的firefox附加组件整理下,个人认为是一般上网常用或者可以说是必备的组件,o(∩_∩)o ,晒晒. ...
- firefox 附加组件栏安装
firefox 在升级到 30的版本后,发现附加组件栏不兼容了. 搜索组件,add-on bar 会得到一个 new add-on bar的组件,安装完后发现上面不显示ip, 后来才发现,应该安装Th ...
- [Firefox附加组件]0004.上下文菜单项
在我们平常浏览网页是经常要对网页类容进行一些操作处理,如复制,翻译,搜索,打印打印等,今天我们就学习下如何在Firefox中我们如何通过附加组件实现这些操作. 开发步骤 1.终端窗口运行以下命令创建项 ...
- [Firefox附加组件]0002.添加菜单项
Add-onSDK 还不能为火狐浏览器提供一个API添加新的菜单项.但它是可扩展的设计,所以任何人都可以建立和发布模块,使用插件开发者.大牛埃里克沃尔德写的MenuItems模块,能够使我们很方便的添 ...
- [Firefox附加组件]0003.弹出对话框
Firefox中使用面板(panel)模块来显示弹出对话框,面板的内容通过HTML编写.你可以在面板上运行content script,尽管在面板里的脚本无法直接访问插件代码,但是你可以在面板脚本和插 ...
- 浏览器 - Firefox开发者附加组件
Firefox开发者版本下载地址: https://www.mozilla.org/zh-CN/firefox/channel/desktop/#developer 教程: https://devel ...
随机推荐
- 面试中的volatile关键字
在Java的面试当中,面试官最爱问的就是volatile关键字相关的内容.经过多次面试之后,你是否思考过,为什么他们那么爱问volatile关键字相关的问题?而对于你,如果作为面试官,是否也会考虑采用 ...
- vue 之 slot插槽
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题这里就点出来了,父组件决定插槽显示或不显示以及怎样显示,子组件决定 ...
- 设计模式(Java语言)- 建造者模式
前言 在日常的生活中,我们可以经常看到建造者模式的影子.比如,建造房子,那么房子就是一个产品,房子由门,窗,墙,地板等部门组成.然后包工头在建造房子的时候就根据设计好的图纸来建造,但是包工头并不是亲自 ...
- 记jmeter接口测试动态获取验证码
在用jmeter做接口测试时,需要动态的获取验证码,以便在登录成功后可以获取token,但是在测试的过程中,遇到了一个问题,想在这里给大家分享一下: 环境描述 在获取验证码的http请求下加后 ...
- Spring杂谈 | Spring中的AutowireCandidateResolver
接口定义 用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口 public interface AutowireCandidateResolver { // 默认情况下 ...
- CTR预估模型演变及学习笔记
[说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]如果你对智能推荐感兴趣,欢迎先浏览我的另一篇随笔:智能推荐算法演 ...
- Spring DI使用详解
Spring DI使用详解 一.介绍 DI的定义:依赖注入,为类里面的属性设值.例如,我们之前的setName方法就是在为name属性设值. IOC与DI的关系:IOC进行对象的创建,DI进行值的注入 ...
- flink进阶篇
Flink 面试--进阶篇 1.Flink是如何支持批流一体的? 2.Flink是如何做到高效的数据交换的? 3.Flink是如何做容错的? 4.Flink 分布式快照的原理是什么? 5.Flink ...
- python--正则表达式|re模块学习
学习来源:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664 正则表达式是一种用来匹配字符串的一种强大的武器,用一种描 ...
- unserialize3
0x01序列化与反序列化 序列化:将变量转换为可保存或传输的字符串的过程. 反序列化:在适当的的时候把这个字符串再转化成原来的变量使用. 优点: 存储和传输数据更方便,使程序维护性更高. 函数: se ...