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-->
相关推荐
2. **install.rdf**:这是一个XML文件,包含了扩展的元数据,如扩展的名称、版本、描述、作者信息以及兼容的Firefox版本。这个文件是安装过程中Firefox用来识别和验证扩展的重要信息。例如,`<em:id>`标签是扩展的...
在Firefox扩展开发中,这可能表现为在浏览器的工具栏上添加一个按钮,点击后会在浏览器的页面上显示一条简单的问候信息。 Firefox扩展的核心组件包括以下几个部分: 1. **manifest.json**:这是扩展的元数据文件,...
React Web扩展样板 该项目旨在提供一个简单的样板,用于为最流行的浏览器(例如Chrome,Firefox,Opera,new Edge和其他基于Chromium的浏览器)编写浏览器扩展。 :party_popper: 产品特点Preact X或React (您可以在...
Devnews Extension-crx便是此类应用的一个例子,它专门针对开发人员的需求进行了定制。 当用户安装此扩展后,它会在浏览器中添加一个图标,用户可以通过点击这个图标来激活其功能。该插件的核心特性是自动完成功能...
My Weather Extension-crx就是这类应用的一个例子,它的主要任务是提供天气预报服务。为了实现这一功能,该插件需要访问用户的地理位置数据,这通常是通过浏览器的API(应用程序接口)来获取的。浏览器如Chrome、...
IIT KGP TNP Extension-crx插件就是这类应用的一个例子,它通过集成到用户的浏览器(如Chrome或Firefox),为用户提供了一个直观的界面,以便实时查看IIT KGP TNP的更新。 安装该插件的过程相对简单,通常需要将....
- **跨浏览器兼容性**:不同的浏览器可能有不同的API和扩展机制,因此开发时需要关注兼容性问题,如使用WebExtension API以兼容Firefox和Chrome。 总之,"browser-Extension-with-TypeScript"项目提供了使用...
标题中的“Smart card access extension-crx插件”指的是一个用于浏览器的扩展程序,它专门设计来帮助用户通过Web浏览器与智能卡进行交互。这个插件的核心功能是提供了一个桥梁,使得用户无需离开浏览器就能访问和...
**标签:“扩展程序”** 指出,Marked Extension 是一种浏览器扩展,它可以无缝集成到主流的浏览器中,如Chrome、Firefox等。安装过程简单,只需将`.crx`文件(在这个例子中是`Marked_Extension.crx`)拖放到浏览器...
Firefox扩展插件制作是一个涉及多方面技术的领域,包括JavaScript编程、XML文件结构解析以及对Firefox浏览器API的深入理解。以下是对这些知识点的详细说明: 1. **Firefox扩展(Add-ons)**:Firefox扩展是定制...
3. **浏览器扩展(Extension/Addon)** - Firefox允许用户安装扩展以增加功能,"artistic-devtool"就是这样一个例子。 4. **集成开发环境** - "artistic-devtool"将用户风格的编辑功能集成到了Firefox的开发者工具中,...
Firefox Addon Example 是一个专为Firefox浏览器设计的扩展,适用于版本8.0及以下。这个扩展的初衷是为用户提供一个简单实用的功能,即保存所有打开的标签页为本地HTML文件。在日常浏览中,我们可能经常遇到需要保存...
XPI是“eXtension Package Installer”的缩写,它实际上是一个ZIP文件,可以通过Firefox的内置机制进行安装。 `forward.html`可能代表了扩展中用于显示或交互的HTML页面,当用户触发扩展功能时,这个页面可能会被...
总结来说,`web-ext-types` 是一个非常有价值的工具,它提升了使用TypeScript开发Firefox WebExtensions的体验,增强了代码的可读性和可靠性。通过利用这个库,开发者可以更好地管理和控制他们的Firefox扩展项目,...
标题 "豆瓣歌詞秀 - Douban.fm Lyric Extension-crx插件" 提供的信息表明,这是一个专门为豆瓣电台(Douban.fm)设计的浏览器扩展,其主要功能是展示用户正在收听的歌曲歌词。这个扩展可能支持中文繁体语言,为用户...
余烬浏览器扩展 此存储库开始于指导和帮助使用Ember开发浏览器扩展。 它利用Ember和来创建可维护且可扩展的扩展。... 当用户访问该存储库时,扩展程序只需在导航栏中添加一个按钮,单击此按钮即可触发e
标题中的“火狐和谷歌支持ocx”表明了本文将探讨如何在Firefox和Google Chrome这两款主流浏览器上使用OCX(Object Container eXtension)控件。OCX控件是微软开发的一种ActiveX技术,它允许开发者创建可重用的用户...
6. **跨浏览器兼容性**:虽然这个例子中提到的是Chrome的CRX格式,但也有其他浏览器如Firefox使用XPI格式,因此如果希望扩展能在多个浏览器上运行,就需要考虑兼容性问题。 7. **调试与测试**:开发过程中,开发者...
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...