因为项目的需要,一些功能需要在火狐上面实现,一点也不了解火狐插件的开发,网上的中文资料也少得可怜,

没办法,只好自己研究一下英文文档,慢慢开发了,在这里备份一下。

学编程,当然是从Hellow,world开始啦。那么我们看看火狐插件的Hellow,world是怎么做的吧

一、创建目录

  1. 随便在一个文件夹里面,新建一个文件夹,名字随意,最好以自己的插件名称命名。我这里做演示,就命名为 test
  2. 在test文件夹下面创建一个文件夹,命名chrome。
  3. 在test文件夹下面创建两个文件,分别为install.rdf、chrome.manifest
  4. 在chrome文件夹下面创建一个文件夹,命名为content。
  5. 在content文件夹下面创建一个文件,命名为test.xul。
  6. 每个文件的编码一定要是utf-8的!否则显示中文会出错!!!

最后得到如下文件:

二、配置install.rdf文件

install.rdf是一个安装清单,其中包含的信息告诉火狐我们插件的信息。其中内容我们可以设置为:

 install.rdf

三、配置chrome.manifest文件

chrome.mainfest文件是应用程序文件,这个文件告诉火狐你的程序架构,内容如下:

#这一行是注册ID为test的插件到chrome/content/目录下,一般情况下这个目录是相对路径,当然也可以设置为绝对路径
content test chrome/content/#这句话是告诉火狐在加载browser.xul的时候,顺便加载test.xul
overlay    chrome://browser/content/browser.xul chrome://test/content/test.xul

四、配置test.xul文件

test.xul文件就是运行程序的地方啦!在这里就是做你的插件想做的事情的地方了,我写的程序如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE overlay ><overlay id="test-overlay"xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><!-- Firefox -->
<statusbar id="status-bar"><statusbarpanel id="test"label="哈啰,世界" tooltiptext="哈啰,世界,拜拜"/>
</statusbar></overlay>

上面的程序就是个简单的在状态栏显示“哈啰,世界”,鼠标移上去会显示悬浮标题“哈啰,世界,拜拜”的功能。

好了,写好程序了,就应该打包然后在火狐上面安装运行了。

五、打包程序、安装运行

1、返回到test文件夹,全选所有文件,然后压缩成ZIP格式。一定要是ZIP格式!压缩后我们得到test.zip文件

2、修改test.zip的后缀名为xpi,最后得到test.xpi文件。

3、把test.xpi文件拖拽到火狐浏览器中,出现提示安装的界面,点击安装,然后重启火狐。

4、看火狐右下角的状态栏,就有“哈啰,世界”字符串了。

案例下载:firefox-test.zip

作者:黄聪
出处:http://www.cnblogs.com/huangcong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/MingZznet/articles/3210106.html

一、如何创建一个状态栏扩展(火狐插件扩展开发教程)相关推荐

  1. 前端开发推荐的火狐插件扩展

    前端开发推荐的火狐插件扩展 火狐好用的插件有很多,主要看你是做什么工作了,比如我是做网站前端的,有一些调试页面的插件就不可缺少了,如firebug.web developer等. 秀一下我收藏的火狐插 ...

  2. php 插件化开发模式,JavaScript_JavaScript插件化开发教程(六),一,开篇分析 今天这篇文章 - phpStudy...

    JavaScript插件化开发教程(六) 一,开篇分析 今天这篇文章我们说点什么那?嘿嘿嘿.我们接着上篇文章对不足的地方进行重构,以深入浅出的方式来逐步分析,让大家有一个循序渐进提高的过程.废话少说, ...

  3. 如何创建一个基本JQuery的插件

    如何创建一个基本的插件 有时您希望在整个代码中提供一些功能.例如,也许你想要一个单一的方法,你可以调用一个jQuery选择,对选择执行一系列的操作.在这种情况下,您可能需要编写一个插件. 链接jQue ...

  4. phpcmsV9视频模块插件 - 手把手开发教程

    phpcmsV9官方的视频模块,一点也不完整不系统. 官方给出的文档说明.文件下载.等等都太缺了. 这里给出个人开发过程后,总结出的经验精华,请及时汲取. 1. 准备工作 安装完整地 wampserv ...

  5. java ee 程序_第一个 JavaEE 应用程序 - JavaWeb 入门开发教程

    第一个 JavaEE 应用程序 JavaEE 是 Java Web 开发当中事实上的标准,诸多框架也都是建立在 JavaEE 的 API 基础之上的.为了从头理解 Java Web 开发,我们将从一个 ...

  6. 创建一个urdf机器人_ROS机械臂开发:创建机器人URDF模型

    1. URDF建模原理 URDF是一种使用XML格式描述的机器人模型文件 Links:坐标系与几何关系 Joints:Links之间的关系 标签 描述机器人某个刚体部分的外观和物理属性: 描述连杆尺寸 ...

  7. [K/3Cloud] 创建一个单据转换插件

    概念: 创建一个业务单据转换插件,在单据转换的各个时点干预单据转换的相关逻辑控制. 示例: 新建一个类,继承自单据转换插件基类Kingdee.BOS.Core.Metadata.ConvertElem ...

  8. mybatis plug 只查id_MyBatis Generator的一个问题引发对插件的修改

    在使用mybatis.generator插件自动生成mapper.xml的时候发现一个问题:默认生成的dao接口为mapper结尾 mapper结尾 当然我们知道在不同的ORM框架中名称表示不同,例如 ...

  9. bash脚本创建变量_创建一个Bash脚本模板

    bash脚本创建变量 在本系列的第一篇文章中,您创建了一个很小的单行Bash脚本,并探讨了创建Shell脚本的原因,以及为什么它们是系统管理员而非编译程序最有效的选择. 在第二篇文章中,您将开始创建一 ...

最新文章

  1. 在网络通讯中,如何自己分配可用的端口号和获取自己的ip地址
  2. NoSQL介绍(三)
  3. UNIX中文件描述符和文件指针
  4. LeetCode 78 子集 中等难度
  5. 基本数据结构----循环链表
  6. keras从入门到放弃(十三)卷积神经网络处理手写数字识别
  7. 2018 焦作站亚洲区域赛校内选拔赛题解
  8. Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs Deepak
  9. Spring对JNDI的支持方法
  10. python拥有庞大的计算生态_Python稳定基础训练中的易出错概念问题1(包括答案和分析),稳基,修炼,之,计算机,等级,考试,易错,含答案,与,解析...
  11. 【jvm】jvm jstack使用 Java线程Dump分析
  12. 用GZIP来压缩socket传输的序列化的类
  13. 摄影测量——EPS三维测图软件正射影像+三维模型后期成果处理(附软件安装包+学习视频)
  14. Java String 常量池
  15. 面试了500个年轻人,发现混得好的,都会这5种说话套路
  16. Linux主机IP地址:网络信息不可用
  17. 按Enter键起到Tab键的效果
  18. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》
  19. mysql更新多字段sql_sql的update语句 批量更新某字段
  20. 怎样破解企业管理软件的困局

热门文章

  1. The Simple Life
  2. Git clone命令出现fatal repository not found错误
  3. 04 - JavaSE之异常处理
  4. 非等高cell实战(01)-- 实现微博页面
  5. 点击页面空白处就关闭某个层是怎么做到的
  6. JBOSS 端口修改说明
  7. 微软网站开始出现大量的关于Office 2007的相关下载
  8. 用javascript做删除时的提示信息
  9. 重新封装了一下NODE-MONGO 使其成为一个独立的服务.可以直接通过get/post来操作
  10. Linux-鸟菜-5-文件权限