如何编写Firefox扩展(1)-技术准备

使用Firefox很长时间了,很喜欢这只"小狐狸",特别是它提供的丰富多彩的扩展功能。一直都想学习一下关于编写Firefox的扩展的知识,现在终于可以开始了,我将边学边把自己所掌握的知识书写出来,以方便大家学习.
收集了一些编写Firefox扩展的相关资料,如果英文够好,请直接查看这些资料,完全忽略我的文章
Extension development
Getting started with extension development
How to write Firefox extensions using BugMeNot as an example
How to create Firefox extensions
Writing an Extension for Firefox
Firefox Extension Tutorial
Building an Extension
下面是编写Firefox扩展所需掌握的相关技术
开发Firefox扩展的过程中,将会接触到以下技术,您不需要精通这些东西,但最好能对他们都比较熟悉.
XUL (XML User-Interface Language).基于xml的UI界面定义技术
JavaScript. 这个不用多讲了,大多数扩展使用它来完成.
DOM (Document Object Model). HTML文档结构模型.
XPCOM/XPConnect. 用来连接Mozilla 提供的XPCOM (Cross-Platform Component Object Model) 功能组件包, 可以用来访问 preferences 配置数据库, filesystem文件系统 以及其他Mozilla提供的功能(可以使用 JavaScript, C++, 甚至是 Python PyXPCOM来编写这个扩展).
CSS (Cascading Style Sheets).
XBL (XML Binding Language). 用来扩展XUL, 允许创建新的风格的UI界面.
RDF (Resource Description Framework). 在扩展中,用来描述某些数据的存储格式。.

如何编写Firefox扩展(2)-配置开发环境

想要快速方便的开发Firefox扩展,配置一下开发环境,做些必要的准备是必须的。
设置Firefox配置
为了避免开发中的扩展平时使用的Firefox的性能,我们需要重新创建一个配置,并且将其命名为"dev",然后用以下的命令行来启动这个配置为开发环境的Firefox
start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -P dev
想要运行默认的配置,使用 "firefox" 或 "firefox -P default".
您还可以同时运行稳定版和开发中的Firefox版本,来检查扩展的兼容性y (Installing Firefox 3 or Minefield while keeping Firefox 2).
开发环境配置
下面的这些配置可以使开发调试扩展更加方便。查看 Editing Configuration Files 了解更多信息。 下面的这些选项,默认是不会在about:config中列出来的,所以需要手工添加它们。方法是,在你的firefox的配置目录下找到user.js ,如果文件不存在,就手工创建一个,然后添加以下几行
user_pref("nglayout.debug.disable_xul_cache",true);
user_pref("browser.dom.window.dump.enabled",true);
提示:firefox3.0中user.js已经被prefs.js代替了
下面是一些可用的配置选项、
javascript.options.showInConsole = true. 记录错误日志到 Error Console.
nglayout.debug.disable_xul_cache = true. 禁止XUL缓存,这样当修改界面元素时,就不需要重新启动firefox了。此选项只有当你使用了目录而不是jar的格式安装扩展时有效,并且修改XUL的行为时仍然需要重新启动。
browser.dom.window.dump.enabled = true. 允许使用dump() 命令输出信息到标准控制台 See window.dump for more info. You can also use nsIConsoleService from privileged script.
javascript.options.strict = true.  Enables strict JavaScript warnings in the Error Console. Note that since many people have this setting turned off when developing, you will see lots of warnings for problems with their code in addition to warnings for your own extension. You can filter those with Console2.
extensions.logging.enabled = true.  This will send more detailed information about installation and update problems to the Error Console.
用来辅助进行Firefox扩展开发的一些Firefox扩展
名字有点拗口,但绝对都是好东西
DOM Inspector, an option of a custom installation.
Venkman, a JavaScript 的调试工具.
Extension Developer's Extension 扩展开发工具,可以用来生成xpi文件,设置开发选项,等等,强烈推荐。
Console2 
Chrome List 
Firebug javascript,http调试工具,功能强大,强烈推荐
Execute JS 
XPCOMViewer, an XPCOM inspector
自定义代码位置
为了使每次修改代码后,不需要重复的进行扩展的安装,你可以将你的源码放到Firefox的配置目录下,Firefox会自动检测并加载你的扩展
在 install.rdf 中找到扩展编号,如 em:id="{46D1B3C0-DB7A-4b1a-863A-6EE6F77ECB58}"
在your_profile_directory/extensions/ 目录下创建一个目录,目录名为刚刚找到的编号(eg. `your_profile_directory/extensions/{46D1B3C0-DB7A-4b1a-863A-6EE6F77ECB58}`) (Find your profile directory)
将你的开发文件,复制到这个目录下
重新启动Firefox.

转载于:https://www.cnblogs.com/jannock/archive/2008/09/22/1295774.html

如何编写Firefox扩展相关推荐

  1. 编写Firefox扩展(翻译)

    编写Firefox扩展 FireFox和Thunderbird有很好的扩展架构,你可以通过XML和ECMAScript结合的方式而不用通过编写C程序的方式来编写扩展 在这个Blog里面,我将会看看如何 ...

  2. Firefox扩展开发 Hello World!

    今天尝试开发一个Firefox的扩展.虽然比较简单,网上也有很多教程,但是感觉一些教程写的比较麻烦,在初步的开发过程中并没有用到那些东西,于是自己把开发过程记录下来.我是根据Mozilla官方教程开发 ...

  3. firefox附加组件开发者指南(五)——创建一个firefox扩展(上)

    本章篇幅较长,分上下两部分发布,本章中的图和清单4在原网站中没有,因此这里也没有,感兴趣的可以去原文补充.下面是译文. 至今为止,各个章节中独立的介绍了相关的技术--XUL.javascript.CS ...

  4. Firefox 扩展开发 install.rdf和chrome.manifest

    现在我们以一个hello world扩展为例来说明Firefox 扩展的基本运行方式.先下载 Hello World extension,解压缩,下面假定路径是c:\helloworld. 设置fir ...

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

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

  6. 如何用C语言编写PHP扩展的详解

    来源:http://www.jb51.net/article/38381.htm 本篇文章是对用C语言编写PHP扩展进行了详细的分析介绍,需要的朋友参考下 1:预定义 在home目录,也可以其他任意目 ...

  7. Go 语言编写 CPython 扩展 goPy

    goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展. 示例代码: package simpleimport ( "fmt" "gopy&quo ...

  8. firefox扩展开发(四) : 更多的窗口控件

    firefox扩展开发(四) : 更多的窗口控件 2008-06-11 17:00 标签盒子 标签盒子是啥?大家都见过,就是分页标签: 对应的代码: <?xml version="1. ...

  9. firefox 扩展_如何检查您的扩展程序是否将停止与Firefox 57一起使用

    firefox 扩展 With Firefox 57, scheduled for release in November 14, 2017, Mozilla will end support for ...

  10. golang python扩展_Python 利用Go语言编写 CPython 扩展 goPy的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展. 示例代码: # ...

最新文章

  1. 【经典算法必读】图片分类系列之(一): 你真的了解图片分类(Image Classification)吗?...
  2. IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
  3. 大一计算机理论考试知识点,计算机一级考试理论知识点整理.doc
  4. 数据结构-二叉树的遍历-前序遍历 中序遍历 后序遍历
  5. iOS大型项目之模块化管理
  6. GoldenGate组态(四)它veridata组态
  7. Registering Protocol Handlers for Your Web Applications
  8. Redis之key的淘汰策略
  9. [USACO18JAN] Cow at Large G (dfs)
  10. 等保2.0|网络安全保护解决方案
  11. esp32摄像显示时间_ESP32彩屏显示入门:我要五彩斑斓的黑,还有五光十色的白
  12. 【Laravel笔记】13. 模型的关联写入
  13. 多向思考者--高敏感人群的内心世界
  14. centerOs底下安装mysql
  15. 树莓派基础实验12:PCF8591模数转换器实验
  16. Java面向对象题库
  17. html期末作业代码网页设计——月饼美食食品模板(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程食品设计网页规划与设计 计食品模板设计源码
  18. Linux 安装Oracle11g完整安装图文教程另附基本操作 (分享)
  19. matplotlib的默认字体_matplotlib中中文字体配置
  20. 移动营业厅称部分SIM卡无法用于iPhone4S

热门文章

  1. IDEA 导出配置方法
  2. LaTeX插入Visio绘图,文字模糊
  3. 用firework中合并图标的方法
  4. JDBC——Java连接关系型数据库
  5. 蓝桥杯真题(python)+B组真题+解题链接
  6. 达州2022年9大科技计划项目申报方向、周期、要求汇编大全
  7. linux版 tar.bz2如何解压,Linux下*.tar.bz2等文件如何解压--转
  8. 单片机跑马灯程序c语言,用单片机编写几种跑马灯程序
  9. tBERT部分代码(自学用)
  10. android 模板设计,Android的设计模式-模板方法模式