Firefox扩展开发 (插件开发) Extension开发 入门教程 5步走 五步走

 

首先需要知道什么是“Firefox插件”。这里说的“插件”只是一个通俗的说法,其实Firefox这种扩展功能的“插件”包括:扩展extension和插件plugin。

{tip:title=Handy Hint}

Firefox官方网站的解释是:Extensions are small add-ons that add new functionality to your Mozilla program. Plugins are programs that allow websites to provide content to you and have it appear in your browser.(扩展是能够给Mozilla增加一些新功能的附加软件,插件是允许网站向你提供内容并在浏览器中显示的程序).通俗的讲,“扩展”是基于Firefox本身增加的一些实用功能,而“插件”则是在Firefox之外独立编写的程序,用于显示网页中的特定内容如Flash、视频和Java 等.

{tip}

其实我们需要开发的是Extension。

要开发Extension,可以分几步走:

1.了解什么是Extension,一般现成的Extension怎样组成的?里边包含的每个文件具体的作用是什么?

2.了解Firefox处理运行Extension的机制。例如Xpcom,chrome机制等。

3.看看入门例子,用记事本,做一个最简单的扩展,运行一下。另外,使用Firefox,下载一些常用的扩展,并查看一下人家的源代码。

4.正式搭建开发环境。

5.一边学习人家的代码,一边修改代码实现自己的扩展。

第一步和第二步:

当然以官方资料为准:https://developer.mozilla.org/en/Extensions。需要了解:chrome,rdf,manifest,xul,xpcom等概念。

另外郑高强的空间:http://www.cnblogs.com/kenkofox/archive/2009/12/17/1626577.html,这里有简单的Firefox Extension组成说明和Firefox处理Extension的过程分析。

王青师兄的空间有更细致的分析,但较为深入,建议后期再看。

http://ericwangqing.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3dFirefox%25e6%258f%2592%25e4%25bb%25b6

第三步:

根据这个简单教程,尝试一下hello world:http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/

另外就是在Firefox官方扩展网站下载一些扩展来研究一下了。

安装后,Extension的代码会在磁盘这个位置:

C:\Documents and Settings\UserName\Application Data\Mozilla\Firefox\Profiles\Profile\extensions

第四步:

正式开始使用开发环境。

1.Firefox安装相关的扩展:firebug,1.Firefox 3.0,这个肯定必不可少了。在此推荐3.0,因为最新版3.6或者3.7,那些扩展还没有更新跟进,所以要想安装更多的扩展,还是以3.0为好。

  2.Firebug,这个不必多说。虽然我只是菜鸟,只是用这个来定位某些xul元素对应什么代码,但帮助不少。再到firebug的官网,下载chromebug:http://getfirebug.com/downloads#chromebug(有了chromebug才能更好的调试自己写的chrome文件)

  因为调试js需要开开关关firefox,太麻烦,所以一些代码可以在firebug控制台先测试。在firefox7试验过

  3.Extension Developer。官网推荐,当然安装啦。这个是一套Firefox扩展,包括打包xpi功能,预览xul等。

  4.Spket IDE。开发扩展的IDE,官网推荐的,比较好用。不过好像不能打包xpi,也不能测试。不过只作为编辑器也不错了。用它来看人家的扩展的代码,非常舒服……

  5.xul explorer。预览xul效果。

  6.emEditor。快速打开代码文件,进行修改。另外最重要的功能是:查找。研究人家的代码的时候,JavaScript的代码转来转去,太难找到某些变量或者对象的定义了。用emEditor的“在文件中查找”功能,作用非常大,查找出来的结果有预览……(后来发现,也可以直接用Spket IDE的search--file功能,跟eclipse的查找功能类似,不过缺点就是没有预览,每次要双击了才知道是怎么匹配的。)

7.另外,王青师兄习惯使用eclipse + spket + XULBooster + Firefox

(上述工具基本都能在MDC网站上找到链接下载)

第五步:

慢慢学习Javascript,CSS还有一些细节的技术。尝试修改人家已有的Extension,加入自己想要的功能。

kenkofox@qq.com https://github.com/kenkozheng 欢迎投简历给我,力推腾讯工作机会
 

Firefox扩展开发的更多相关文章

  1. firefox 扩展开发笔记(三):高级ui交互编程

    firefox 扩展开发笔记(三):高级ui交互编程 前言 前两篇链接 1:firefox 扩展开发笔记(一):jpm 使用实践以及调试 2:firefox 扩展开发笔记(二):进阶开发之移动设备模拟 ...

  2. firefox扩展开发(二):用XUL创建窗口控件

    firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...

  3. firefox扩展开发(一) : 扩展的基本结构

    用过firefox的人肯定要安装firefox的扩展,这样才能发挥火狐的全部实力.一般扩展是一个后缀为.xpi的文件,其实这个文件就是zip格式的压缩包,压缩了一个扩展所需要的所有目录和文件,基本的目 ...

  4. 【转发】NPAPI学习(Firefox和Chrome扩展开发 )

    NPAPI学习(Firefox和Chrome扩展开发 ) 2011-11-08 14:41:02 by [6yang], 1172 visits, 收藏 | 返回 Firefox和Chrome扩展开发 ...

  5. 常用网站开发类Firefox扩展插件 (转)

    作为一个 Web 开发人员,你几乎没有理由不喜欢Firefox,因为在Firefox下有很多专门针对开发的扩展插件,非常好用,这里就介绍一些常用的针对网站开发的FireFox扩展,供Web开发人员参考 ...

  6. 常见浏览器扩展开发笔记(chrome firefox 360 baidu qq sougou liebao uc opera)

    浏览器扩展开发貌似时下很冷门啊,但是不少企业还是有类似的应用,360的抢票插件啊,笔者最近在做的网页翻译扩展之类的.笔者在开发的过程中,遇到了不少坑,说是坑,说白了就是各个厂商支持的API不统一导致的 ...

  7. FireFox 浏览器插件/扩展开发学习

    2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"

  8. 【干货】Chrome插件(扩展)开发全攻略(不点进来看看你肯定后悔)

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  9. Firefox扩展安装

    firefox扩展和chrome扩展非常相似,甚至兼容.因总结过chrome扩展的开发,这里不提,本篇谈谈firefox扩展的安装. 1.打包 所谓的打包,就是压缩,利用普通的右键压缩文件夹,这样形成 ...

随机推荐

  1. android学习笔记 对话框合集

    package com.zhangbz.dialog; import android.app.Activity; import android.app.AlertDialog; import andr ...

  2. unity学习网站汇总

    由于最近要学习unity3d 开发,把自己找来的资料汇总下 unity3D官方学习资源:https://www.assetstore.unity3d.com/ unity3D API查询网站:http ...

  3. JIRA系统部署推进上线流程

    JIRA介绍: JIRA是集项目计划.任务分配.需求管理.问题跟踪于一体的商业软件.JIRA创建的问题类型包括New Feature.Bug.Task和Improvement四种(可以自己定义),所以 ...

  4. Effective Java 04 Enforce noninstantiability with a private constructor

    A class can be made noninstantiable by including a private constructor. // Noninstantiable utility c ...

  5. BIG biang教你误删oracle 怎么办,

    今天无意中在网上看到了关于oracle误删除数据恢复的一条信息,发现的确很好使,下面就我的测试向大家汇报下. 1. select * from t_viradsl2 t         //查询t_v ...

  6. Neo4j图数据库管理系统开发笔记之二:管理系统Server端界面一览

    最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计 ...

  7. redis状态查看

      https://redis.readthedocs.org/en/latest/server/slowlog.html   https://redis.readthedocs.org/en/lat ...

  8. 如何判断两个String是否是Anagrams_java实现

    Anagrams:是颠倒字母顺序的字符串 本文提供三个方法,分别分析时间空间复杂度 方法一:暴力遍历 时间复杂度:O(n^2) 方法二:基于排序算法,Sorting的时间复杂度是O(n*log(n)) ...

  9. 怎么运用ZBrush中的Z球制作身体部分

    本文主要讲解利用ZSphere[Z球]创建人体的大体轮廓,这是ZBrush®软件制作模型的第一步,这一阶段中我们需要反复调节人体比例结构,为以后深入制作打下基础,具体制作过程如下. 查看更多内容请直接 ...

  10. 边工作边刷题:70天一遍leetcode: day 88-5

    coins in a line I/II/III: check above 1. recursion的返回和dp[left][right]表示什么?假设game是[left,right],那么play ...