`
Irving_wei
  • 浏览: 132589 次
  • 性别: Icon_minigender_1
  • 来自: Heaven
社区版块
存档分类
最新评论

FireFox Extension --- 一个简单的例子

 
阅读更多

1、创建简单的FF 插件的参考资料地址:

https://developer.mozilla.org/en-US/docs/Building_an_Extension

 

建立一个简单的Hello world

①、在eclipse中没有安装FF extension开发的插件之前,先手动创建一个简单的FF插件,对于理解FF插件的开发是很有帮助的,建立一个普通的项目,建立如下的目录结构:

 

 

 

②、编写install.rdf文件

Install.rdf名字是固定的,位置也是固定的,它是用来描述整个插件的各种信息,包括提供者,版本号,ID等等,另外还可以提供了嵌入用户提供页面的功能,比如嵌入用户提供的option功能(<em:optionsURL>)等等。

<?xml version="1.0"?>

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:em="http://www.mozilla.org/2004/em-rdf#">

 

<Description about="urn:mozilla:install-manifest">

<em:name>HelloWorld</em:name>

<em:version>1.0</em:version>

<em:description>A test extension</em:description>

<em:creator>Irving Sun</em:creator>

<em:id>helloWorld@cn.irving.com</em:id>

 

<em:targetApplication>

<Description>

<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>

<em:minVersion>1.5</em:minVersion>

<em:maxVersion>30.0.*</em:maxVersion>

</Description>

</em:targetApplication>

 

<em:iconURL></em:iconURL>

<em:homepageURL></em:homepageURL>

</Description>

</RDF>

 

③、编写XUL文件

XUL(XML User Interface Language),是一种Mozilla开发的一种使用XML进行用户界面描述的语言,在FF中,XUL文件可以直接访问,而且显示出来的就是一个页面。

 

另外,FF的整个界面都是通过XUL描述的,所以自然就可以把我们编写的XUL界面嵌入到FF浏览器中,以插件的界面的形式显示出来。

 

<?xml version="1.0"?> 

<overlay id="sample"  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

<statusbar id="status-bar"> 

    <statusbarpanel id="hello-panel" label="HelloWorld"    /> 

</statusbar> 

</overlay>

XUL文档基于这个overlay标签进行扩展,从字面上可以看出,此处扩展了statusbar,添加了一个id"hello-panel"panel,并且上面添加上"hello-panel"

 

④、关联chrome.manifest

FF对于资源的定位,自己定义了chrome://协议,类似于HTTP协议的使用。在FF的安装目录下,有一个browser包,里面会有类似于content/browser/browser.xul的文件,如果要访问这个资源,我们可以在FF的地址栏输入:chrome://browser/content/browser.xul

 

我们添加如下的关联代码:

content         sample        chrome/content/

overlay chrome://browser/content/browser.xul   chrome://sample/content/sample.xul

 

第一句表示:

当我们请求chrome://sample/content/目录下的资源的时候,将返回chrome/content/目录下的资源。sample表示包名,content表示请求类型。

第二句表示:

当我们请求chrome://browser/content/browser.xul的时候

chrome://browser/content/browser.xul也扩展进来。


⑤编写build脚本

主要的任务就是将我们需要的东西都打包到一个后缀名为.xpi的文件里。

<project name='test' default='xpi'>

<property name="src.dir" value="." />

<property name="dist.dir" value="dist" />

<property name="app.xpi.id" value="helloWorld@cn.ibm.com" />

 

<target name='xpi' depends='clean'>

<mkdir dir="${dist.dir}"/>

<zip destfile="${dist.dir}/${app.xpi.id}.xpi">

<fileset dir="${src.dir}">

<include name='chrome/**'/>

<include name="chrome.manifest" />

<include name="install.rdf" />

</fileset>

</zip>

</target>

 

<target name='clean'>

<delete dir='${dist.dir}' />

</target>

</project>

 

运行之后,就会在当前目录下生成一个dist文件夹,我们需要的文件就在里面。

 

⑥调试

将生成的xpi文件拖到FF中,稍等一会儿就会出现安装的提示了。安装完了之后,重启FF,就可以在FF的右下角看到如下的信息:

关于调试,调试JS 的快捷键Ctrl+Shift+j

<!--EndFragment-->
  • 大小: 6.1 KB
  • 大小: 3.9 KB
分享到:
评论

相关推荐

    firefox extension 开发例子

    2. **install.rdf**:这是一个XML文件,包含了扩展的元数据,如扩展的名称、版本、描述、作者信息以及兼容的Firefox版本。这个文件是安装过程中Firefox用来识别和验证扩展的重要信息。例如,`&lt;em:id&gt;`标签是扩展的...

    Firefox扩展实例-HelloWorld

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

    react-browser-extension-boilerplate::party_popper:适用于最受欢迎的浏览器(Chrome,Firefox,Opera,new Edge和其他基于Chromium的浏览器)的React Preact X浏览器扩展样板

    React Web扩展样板 该项目旨在提供一个简单的样板,用于为最流行的浏览器(例如Chrome,Firefox,Opera,new Edge和其他基于Chromium的浏览器)编写浏览器扩展。 :party_popper: 产品特点Preact X或React (您可以在...

    Devnews Extension-crx插件

    Devnews Extension-crx便是此类应用的一个例子,它专门针对开发人员的需求进行了定制。 当用户安装此扩展后,它会在浏览器中添加一个图标,用户可以通过点击这个图标来激活其功能。该插件的核心特性是自动完成功能...

    My Weather Extension-crx插件

    My Weather Extension-crx就是这类应用的一个例子,它的主要任务是提供天气预报服务。为了实现这一功能,该插件需要访问用户的地理位置数据,这通常是通过浏览器的API(应用程序接口)来获取的。浏览器如Chrome、...

    IIT KGP TNP Extension-crx插件

    IIT KGP TNP Extension-crx插件就是这类应用的一个例子,它通过集成到用户的浏览器(如Chrome或Firefox),为用户提供了一个直观的界面,以便实时查看IIT KGP TNP的更新。 安装该插件的过程相对简单,通常需要将....

    browser-Extension-with-TypeScript

    - **跨浏览器兼容性**:不同的浏览器可能有不同的API和扩展机制,因此开发时需要关注兼容性问题,如使用WebExtension API以兼容Firefox和Chrome。 总之,"browser-Extension-with-TypeScript"项目提供了使用...

    Smart card access extension-crx插件

    标题中的“Smart card access extension-crx插件”指的是一个用于浏览器的扩展程序,它专门设计来帮助用户通过Web浏览器与智能卡进行交互。这个插件的核心功能是提供了一个桥梁,使得用户无需离开浏览器就能访问和...

    Marked Extension-crx插件

    **标签:“扩展程序”** 指出,Marked Extension 是一种浏览器扩展,它可以无缝集成到主流的浏览器中,如Chrome、Firefox等。安装过程简单,只需将`.crx`文件(在这个例子中是`Marked_Extension.crx`)拖放到浏览器...

    firefox扩展插件制作小综合

    Firefox扩展插件制作是一个涉及多方面技术的领域,包括JavaScript编程、XML文件结构解析以及对Firefox浏览器API的深入理解。以下是对这些知识点的详细说明: 1. **Firefox扩展(Add-ons)**:Firefox扩展是定制...

    artistic-devtool:Firefox DevTools选项卡可管理您的时尚用户风格

    3. **浏览器扩展(Extension/Addon)** - Firefox允许用户安装扩展以增加功能,"artistic-devtool"就是这样一个例子。 4. **集成开发环境** - "artistic-devtool"将用户风格的编辑功能集成到了Firefox的开发者工具中,...

    Firefox Addon Example

    Firefox Addon Example 是一个专为Firefox浏览器设计的扩展,适用于版本8.0及以下。这个扩展的初衷是为用户提供一个简单实用的功能,即保存所有打开的标签页为本地HTML文件。在日常浏览中,我们可能经常遇到需要保存...

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

    XPI是“eXtension Package Installer”的缩写,它实际上是一个ZIP文件,可以通过Firefox的内置机制进行安装。 `forward.html`可能代表了扩展中用于显示或交互的HTML页面,当用户触发扩展功能时,这个页面可能会被...

    web-ext-types:Firefox WebExtensions的TypeScript类型定义

    总结来说,`web-ext-types` 是一个非常有价值的工具,它提升了使用TypeScript开发Firefox WebExtensions的体验,增强了代码的可读性和可靠性。通过利用这个库,开发者可以更好地管理和控制他们的Firefox扩展项目,...

    豆瓣歌詞秀 - Douban.fm Lyric Extension-crx插件

    标题 "豆瓣歌詞秀 - Douban.fm Lyric Extension-crx插件" 提供的信息表明,这是一个专门为豆瓣电台(Douban.fm)设计的浏览器扩展,其主要功能是展示用户正在收听的歌曲歌词。这个扩展可能支持中文繁体语言,为用户...

    ember-browser-extension:Ember和webextension-polyfill之上的示例浏览器扩展

    余烬浏览器扩展 此存储库开始于指导和帮助使用Ember开发浏览器扩展。 它利用Ember和来创建可维护且可扩展的扩展。... 当用户访问该存储库时,扩展程序只需在导航栏中添加一个按钮,单击此按钮即可触发e

    火狐和谷歌支持ocx

    标题中的“火狐和谷歌支持ocx”表明了本文将探讨如何在Firefox和Google Chrome这两款主流浏览器上使用OCX(Object Container eXtension)控件。OCX控件是微软开发的一种ActiveX技术,它允许开发者创建可重用的用户...

    extension_0_9_1.zip

    6. **跨浏览器兼容性**:虽然这个例子中提到的是Chrome的CRX格式,但也有其他浏览器如Firefox使用XPI格式,因此如果希望扩展能在多个浏览器上运行,就需要考虑兼容性问题。 7. **调试与测试**:开发过程中,开发者...

    chrome实现ie内核(chrome.r39.crx+ffactivex-setup-r39.exe+控件例子)

    2. **ffactivex-setup-r39.exe**:这个名字看起来像是Firefox(FF)的一个安装程序,但带有"activex",可能是一个用于Firefox的插件或工具,目的是在Firefox中模拟IE的ActiveX功能。然而,由于我们讨论的是Chrome,...

    chrome实现ie内核(chrome.r39.crx+ffactivex-setup-r39.exe+控件例子).zip

    标题 "chrome实现ie内核(chrome.r39.crx+ffactivex-setup-r39.exe+控件例子).zip" 描述的是一个压缩包,它包含了一些文件,目的是在Chrome浏览器上模拟或实现IE内核的功能。这个压缩包里的文件主要有两个:`chrome...

Global site tag (gtag.js) - Google Analytics