Firefox扩展开发 Hello World!
按照一般的教程,第一个程序都是使用最简单的Hello World,现在我们就制作一个Firefox的Hello World扩展。
开发Firefox插件并没有看上去的那样复杂,仅仅使用XML和JavaScript就可以完成。当然,这个意思是Firefox插 件开发使用的技术是XML和JavaScript,要做出一个完善的插件涉及到很多方面。但是对于我们的Hello World就不需要那么多东西啦!
1. 准备目录结构
首先在硬盘上建立一个目录,名为extension。这个名字是随意取的。然后在里面建立chrome文件夹,再在chrome里面建 立content文件夹。注意这两个文件夹的名字都是固定的,不能随意改动。然后在extension里面新建两个文本文件,并且取名为 chrome.manifest和install.rdf。这样,就建立起如下的目录结构:
extension
|--install.rdf
|--chrome.manifest
|--chrome
|--content
2. 编写install.rdf
用文本编辑器打开install.rdf文件,输入以下内容:
<?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"><!-- 指出扩展的ID。该ID应该是一个Email格式的字符串,或者是一个GUID。注意,使用Email的作用是保证该ID的唯一性,并不要求这个Email地址是有效的。必填。 --><em:id>sample@example.net</em:id><!-- 指出插件的版本号。必填。 --><em:version>1.0</em:version><!-- 在这里的值必须是2。该标签说明该应用的Firefox扩展,而不是其他XUL应用程序。Firefox插件的代码是2,如果是Firefox主题则会是4。必填。 --><em:type>2</em:type><!-- 安装扩展的目标应用程序以及最高版本和最低版本。必填。 --><em:targetApplication><Description><!-- Firefox的ID,这个值不能改变。必填。 --><em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id><!-- 指明能使用该扩展的Firefox最低版本。这里是指1.5。必填。 --><em:minVersion>1.5</em:minVersion><!-- 指明能使用该扩展的Firefox最高版本。这里是指3.0.x。结合minVersion,即是说本扩展只适用于1.5和3.0.x之间的版本。必填。 --><em:maxVersion>3.0.*</em:maxVersion></Description></em:targetApplication><!-- 扩展的元数据。 --><!-- 扩展名字。必填。 --><em:name>sample</em:name><!-- 扩展的描述。这里的描述将出现在Firefox的工具-附加组件的描述栏。选填。 --><em:description>A test extension</em:description><!-- 扩展作者。选填。 --><em:creator>galaxy.org</em:creator><!-- 扩展主页的URL。选填。 --><em:homepageURL>http://www.example.com/</em:homepageURL></Description>
</RDF>
install.rdf文件是供具有扩展管理功能的XUL应用程序使用的,XUL应用程序可以使用该文件识别正在安装的扩展的信息。install.rdf文件具有下面的格式:
<?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"><!-- properties --></Description>
</RDF>
<statusbar id="status-bar">
<!-- ... <statusbarpanel>s ... -->
</statusbar>
这里的这个<statusbar id="status-bar">称为“覆盖点(Overlay,我不知道官方的翻译是什么,自己把它翻译成了这个词,想想还算是准确,不过为了不 引起混淆,下面还是使用Overlay这个单词吧 :-) )”。所谓Overlay,就是在运行一个XUL文档的时候可以附加其他的XUL文件的方式。就是说,我们本来的XUL是a.xul,这里面有一个 Overlay定义为overlay-point,那么我们可以在另外一个b.xul中对这个Overlay进行追加,从而在执行a.xul的时候可以自 动的把b.xul的内容附加到overlay-point并运行出来。这么说有些抽象,来看我们的代码:
<?xml version="1.0"?>
<overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<statusbar id="status-bar"><statusbarpanel id="my-panel" label="Hello, World" />
</statusbar>
</overlay>
content sample chrome/content/
overlay chrome://browser/content/browser.xul chrome://sample/content/sample.xul
转载于:https://www.cnblogs.com/memaxiaofeng/archive/2013/04/02/3275500.html
Firefox扩展开发 Hello World!相关推荐
- firefox扩展开发(二):用XUL创建窗口控件
firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...
- firefox扩展开发(四) : 更多的窗口控件
firefox扩展开发(四) : 更多的窗口控件 2008-06-11 17:00 标签盒子 标签盒子是啥?大家都见过,就是分页标签: 对应的代码: <?xml version="1. ...
- firefox扩展开发(八) :控件激活
firefox扩展开发(八) :控件激活 2008-06-11 17:01 当我们用鼠标点击一个控件,或者用TAB键移动到一个控件上时,我们说这个控件被激活 了(focus),离开这个控件时,我们说这 ...
- 提高firefox扩展开发效率
本文介绍一些技巧和开发扩展中使用的工具,主要参考:https://developer.mozilla.org/En/Firefox_addons_developer_guide的第五章(Chapter ...
- Firefox 扩展开发 install.rdf和chrome.manifest
现在我们以一个hello world扩展为例来说明Firefox 扩展的基本运行方式.先下载 Hello World extension,解压缩,下面假定路径是c:\helloworld. 设置fir ...
- Firefox扩展开发笔记 - 如何给扩展打包,xpi格式
原创声明: 本文章为原创,欢迎转载,但请给出本文链接,多谢合作. 本文链接:http://blog.csdn.net/epinszteinic/archive/2009/11/13/4 ...
- firefox 扩展
firefox 扩展 <table border="0" cellpadding="4"> <tbody><tr> < ...
- 基于Mozilla平台的扩展开发(续)----XPCOM组件篇
源代码下载:HelloWorld示例.rar 在<浅谈基于Mozilla ThunderBird的扩展开发>这篇入门文章中简单介绍了基于Mozllia平台进行扩展开发的基础知识,但仍然欠缺 ...
- 于Mozilla平台的扩展开发
[url]http://www.cnblogs.com/phinecos/archive/2008/04/25/1171614.html[/url] 于Mozilla平台的扩展开发(续)----XPC ...
最新文章
- Design Pattern: Observer Pattern
- 嫌微软要价“太狠” 东莞网吧巨头拒绝付费
- Back-Training: 用于问题生成和段落检索的全新领域自适应方法
- Sery送的书与网站短信解决方案
- C++ 实现无向图的最小生成树Kruskal算法(完整代码)
- C++基类指针指向派生类(指针)
- python模拟猫狗大战_tensorflow实现猫狗大战(分类算法)-阿里云开发者社区
- C++ I/O流 格式控制(下)
- jupyter 功能插件
- 【收藏】图解最常用的10个机器学习算法!
- linux c 库依赖
- 成也萧何,败也萧何---PIG JOIN 的replicated
- matlab改进中值滤波,求助中值滤波和自适应中值滤波算法错误修改
- svn和git版本管理
- 打蚊子表情包_打死蚊子表情包 - 打死蚊子微信表情包 - 打死蚊子QQ表情包 - 发表情 fabiaoqing.com...
- 如何只用电脑登录微信
- HDU 4422 The Little Girl who Picks Mushrooms
- 单片机c语言计算器,基于STC89C52单片机的计算器的设计.doc
- C++complex复数类
- 计算机三级数据库考试知识点及题库总结(最全)