热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何编写Firefox扩展

如何编写Firefox扩展(1)-技术准备使用Firefox很长时间了,很喜欢这只"小狐狸",特别是它提供的丰富多彩的扩展功能。一直都想学习一下关于编写Firefox的扩展的知识,现在终于可以
如何编写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.
推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • 第8章 使用外部和内部链接
    8.1使用web地址LearnAboutafricanelephants. ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
author-avatar
串串香是的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有