热门标签 | 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.
推荐阅读
  • 包含phppdoerrorcode的词条 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
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社区 版权所有