`
yinwufeng
  • 浏览: 287001 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Firefox扩展开发

 
阅读更多

转:

最近玩了一把Firefox的扩展开发,感觉不错。倒腾出来一个ChinaStock,有兴趣的可以瞧瞧(现在还被放在Sandbox里面,必须登录才能下载安装;同时因为被放在sandbox里面,暂时还不能被自动更新版本)。如果您愿意的话,也可以直接在本站下载安装

扩展开发中用得着的扩展(有点拗口):

Extension Developer's Extension  (xpi download / install address) 快速将扩展目录打包成xpi文件,在不重启Firefox的情况下重新载入所有扩展以及其他实用小功能。必备!如果不使用该扩展快速重载扩展的话,每次修 改代码之后都必须从Firefox的菜单栏选择“退出”关闭Firefox再打开才有99%的几率保证该Chrome内容是最新修改后的,那叫一个痛苦。 即使设置参数 nglayout.debug.disable_xul_cache = true ,也只是减少了修改窗口或对话框之后的重启而已。

Chrome List + Extension Manager Extended 学习其他人写的扩展总是最快入门的方法。 Chrome List 提供了扩展浏览功能,可以查看扩展安装之后存在的问题和jar包里面的源代码;Extension Manager Extended 则扩展了Firefox的扩展软件列表功能,直接显示每个扩展的ID,通过右键可以直接打开扩展存放的目录,再不需要去资源管理器找深埋在 Application Data\Mozilla\Firefox\Profiles\!@#$%^.default\extensions 里的jar包,也不需要去猜测使用UUID作为ID的扩展到底对应在哪个子目录了。

DebugLogger + Console2 DebugLogger 是 dump() 的优化版本。可以按照每个项目分别查看各自的dump信息。像 Firebug 这样的大师级扩展属于开发必备不需多讲,这个 DebugLogger 相较而言属于轻量级并且原始的调试辅助工具。配合它,至少不需要再用alert来简单粗暴了。 Console2 则是错误控制台的加强版,实现了 Firefox 3 错误控制台的一些特性。

现有HTML代码的利用:

虽然并不被鼓励,但对于更熟悉HTML语法的开发者来说, 最快捷编写扩展界面的方法是在 XUL 中引入 HTML 命名空间(为根标签增加属性 xmlns:html="http://www.w3.org/1999/xhtml"), 然后给所有使用到的HTML标签添加 html: 前缀(比如 <div>...</div> 应该写成 <html:div>...</html:div>)即可。当然,因为 XUL 是基于 XML 的语言,所以所有的标签属性都应该是小写格式,并且空tag必须进行关闭。

相应的,由于上述定义方式下HTML 元素标签定义不在主命名空间内,当进行 DOM 操作的 js 代码在创建 HTML 元素的时候,也不能直接使用 createElement ,而必须使用 createElementNS 。比如 document.createElementNS("http://www.w3.org/1999/xhtml","html:div");

关于扩展ID:

每个扩展软件都必须有个唯一的标识ID,建议是使用UUID,也可以使用形如 extensionname@my.domain(必须有@符号但不必是真实的域名) 的字符串。生成UUID的方法很多:windows下可以安装微软自己提供的GUID Generator,*nix 下直接敲命令 uuidgen ,或者访问这里在线生成一个。个人觉得虽然UUID不会造成ID冲突,但 @ 形式的可读性更强一些,否则不靠前面提到的扩展帮忙要把ID跟功能对应起来还真是件费力的事情。 

扩展描述的本地化:

在 Firefox 扩展管理器中,每个扩展的名字下面都有一段简短的描述(description),这段描述来自扩展根目录下的 install.rdf 文件。将这段描述进行本地化处理的方法是在扩展目录下创建子目录 defaults/preferences ,在子目录下新建一个 js 文件 myextname.js ,包含以下内容:

pref("extensions.ReplaceWithExtensionIDHere.description", "chrome://myextname/locale/myextname.properties");

同时在 locale 语言包文件 myextname.properties 中添加一行:

extensions.ReplaceWithExtensionIDHere.description = 经过本地化的描述内容

扩展的打包发布:

如果使用 Extension Developer's Extension 提供的extension builder 进行打包,它会在build的过程中自动将chrome.manifest中的目录配置替换成jar:chrome的形式,而不需要自己来回切换不同的chrome.manifest配置。当然前提是你的扩展工作目录按照约定的结构进行组织。如果你没有把content / skin / locale 目录放在工作根目录而是放在了 chrome 子目录下的话,打包之后xpi文件会同时包含jar文件和chrome整个目录。生成xpi文件之后,到 Firefox Add-ons 的开发者工具界面进行注册/登录/上传即可。

如果代码实际是兼容Firefox的最新版本的,只是因为在install.rdf里面的em:maxVersion设置了过老的版本号而导致你发布在AMO上的扩展被认为不兼容而无法下载的话,可以登录AMO后进入开发者工具管理界面,选择相应的扩展,点击版本历史列出的版本号链接进去,就可以快速修改该版本xpi的兼容版本范围(找这个修改的地方找了N久,OrZ)。

参考文档:

分享到:
评论

相关推荐

    firefox 扩展开发示例

    本示例将带你深入理解Firefox扩展开发,包括如何创建、配置和发布一个扩展。 首先,我们需要了解Firefox扩展的基本结构。一个标准的Firefox扩展通常包含以下几个部分: 1. **manifest.json**:这是扩展的核心文件...

    Firefox扩展开发详解

    Firefox扩展开发是一个面向开发者的技术,它允许用户自定义和增强Firefox浏览器的功能。本文将深入探讨Firefox扩展开发的各个方面,从基础结构到核心组件,帮助开发者理解如何构建自己的Firefox扩展。 首先,一个...

    firefox插件开发,firefox plugin 开发 firefox 扩展 开发

    - 当扩展开发完成后,需要将其打包成XPI文件,进行签名验证,然后可以在Firefox附加组件网站或其他平台发布。 7. **持续学习和资源**: - 提到的博客文章提供了额外的开发技巧和注意事项,如CSDN上的文章,可以...

    基于 Mozilla firefox 的扩展开发

    **基于 Mozilla Firefox 的扩展开发详解** Firefox 扩展(或称插件)是 Mozilla Firefox 浏览器的一个强大特性,允许开发者通过编写特定的代码来增强浏览器的功能,提供个性化体验。如果你对定制浏览器界面、增加新...

    Firefox扩展实例-HelloWorld

    在Firefox扩展开发中,这可能表现为在浏览器的工具栏上添加一个按钮,点击后会在浏览器的页面上显示一条简单的问候信息。 Firefox扩展的核心组件包括以下几个部分: 1. **manifest.json**:这是扩展的元数据文件,...

    Mozilla,firefox 扩展学习

    Mozilla和Firefox扩展开发是Web开发领域的一个重要分支,它允许开发者为火狐浏览器定制功能,增强用户体验或提供特定服务。本文将深入探讨Mozilla扩展的基本概念、开发环境搭建、API使用以及实战示例。 一、Mozilla...

    firefox extension 开发例子

    Firefox扩展(Extension)开发是为Mozilla Firefox浏览器定制功能或改变其外观的一种技术。这个压缩包包含的文件是创建Firefox扩展的基础组件。 1. **chrome.manifest**:这是Firefox扩展的核心配置文件之一,它...

    firefox扩展插件制作小综合

    综上所述,"Firefox扩展插件制作小综合"这个主题涵盖了从基础的JavaScript编程到高级的Firefox扩展开发技巧。通过学习这些内容,开发者不仅可以创建自定义的浏览器插件,还能深入了解浏览器的工作原理,提升自身的...

    firefox扩展编程手册

    《Firefox扩展编程手册》是一本深入探讨Firefox浏览器扩展开发的专业教程,主要面向对Web技术和Firefox扩展感兴趣的开发者。这本书英文版提供了全面的指南,涵盖了从环境搭建到扩展分发的整个流程,帮助开发者们掌握...

    Firefox扩展开发 快速重启Firefox

    快速重启firefox,定制工具栏中添加了一个按钮,可手动移动到任何地方。完整版在文件菜单中增加了重新启动菜单项。直接打开Firefox,拖拽进Firefox就可以安装

    firefox 扩展

    标题 "Firefox 扩展" 涉及到的是在 Mozilla Firefox 浏览器中使用的插件或附加组件的开发和管理。这些扩展可以增强浏览器的...对于想要深入了解 Firefox 扩展开发的 IT 从业者来说,这是一片广阔的领域,值得深入研究。

    firefox扩展 实现:输入指定的网址,跳转到本地磁盘指定的页面

    这通常涉及到浏览器扩展的开发,JavaScript编程,以及对Firefox API的理解。 首先,`forward.xpi`是一个Firefox扩展的标准打包格式,它包含了扩展的所有必要文件。XPI是“eXtension Package Installer”的缩写,它...

    Firefox扩展

    标题 "Firefox扩展" 提供了我们要讨论的主题,即在Mozilla Firefox浏览器中使用的各种插件或扩展。这些工具通常用于增强浏览器的功能,...通过安装和使用这些扩展,用户可以将Firefox转变为一个功能强大的开发平台。

    FireFox开发文档

    根据给定的“FireFox开发文档”的标题、描述、标签及部分内容,我们可以提炼出一系列与FireFox扩展开发相关的深入知识点: ### FireFox扩展开发概述 #### 关键概念 - **扩展开发**:针对Mozilla Firefox浏览器设计...

    我的Firefox插件开发之旅——从零开始

    以上内容详细阐述了作者在开发Firefox扩展过程中的学习路线图,从零开始探索扩展开发的必备知识,包括对扩展与插件的区别、XUL的介绍和应用,以及如何准备和规划自己的学习路径。通过分享这些内容,作者希望为其他...

    web开发必备firefox扩展集合

    web开发必备的firefox扩展集合: compatibility detector firebug firecookies fireguestures measureit rainbow color tools web developer

    firefox xpi

    **Firefox 扩展开发流程** 1. **设计与规划**: 确定扩展的目标和功能,设计用户界面和交互逻辑。 2. **编写代码**: 使用 HTML、CSS 和 JavaScript 来实现扩展的前端部分,用 JavaScript 或 XUL(XML User Interface ...

    firefox插件开发教程

    ### 知识点一:Firefox 插件开发环境设置 在深入进行 Firefox 插件开发之前,设置一...通过按照上述指导设置开发环境,开发者可以更有效地进行 Firefox 扩展的开发、测试和部署,从而为用户提供更多创新的功能和体验。

    firefox重启扩展

    博文中firefox扩展开发初级教程示例扩展xpi包,可快速重启firefox。欢迎下载,学习使用并与我交流。firefox交流群:81424441

    Firefox 插件开发指南

    ### Firefox 插件开发指南知识点概述 #### 一、开发概览 ...总之,Firefox 扩展开发是一项既富有挑战性又极具创意的工作。通过学习本教程和探索更多资源,您将能够掌握开发高质量扩展所需的知识和技能。

Global site tag (gtag.js) - Google Analytics