件开发使用的技术是XML和JavaScript,要做出一个完善的插件涉及到很多方面。但是对于我们的Hello World就不需要那么多东西啦!
立content文件夹。注意这两个文件夹的名字都是固定的,不能随意改动。然后在extension里面新建两个文本文件,并且取名为
chrome.manifest和install.rdf。这样,就建立起如下的目录结构:
extension
|--install.rdf
|--chrome.manifest
|--chrome
|--content
<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>
<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>
面找到content/browser/browser.xul文件。(说明一下,jar文件可以用WinRAR或其他一些压缩工具解压缩,这是一个使用
zip算法压缩的压缩包)在这个XUL文件中有这么一段:
<!-- ... <statusbarpanel>s ... -->
</statusbar>
id="status-bar">称为“覆盖点(Overlay,我不知道官方的翻译是什么,自己把它翻译成了这个词,想想还算是准确,不过为了不
引起混淆,下面还是使用Overlay这个单词吧
)”。所谓Overlay,就是在运行一个XUL文档的时候可以附加其他的XUL文件的方式。就是说,我们本来的XUL是a.xul,这里面有一个
Overlay定义为overlay-point,那么我们可以在另外一个b.xul中对这个Overlay进行追加,从而在执行a.xul的时候可以自
动的把b.xul的内容附加到overlay-point并运行出来。这么说有些抽象,来看我们的代码:
<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>
id="status-bar">就是一个Overlay,那么在我们的插件的XUL文档就是基于这个Overlay进行扩展。在这里,我们在
statusbar上面定义了一个statusbarpanel,它的id是my-panel,label是Hello,
World。这段代码比较清晰,就是在原有的statusbar上追加一个statusbarpanel,这个statusbarpanel显示
Hello, World。
extension下面的两个文件和一个文件夹,而不是extension文件夹。然后将后缀名改为xpi。然后打开Firefox(我测试的版本是
3.0.10),将这个xpi拖到窗口中,Firefox将提示安装扩展,按照一般的过程安装之后,重启Firefox有时候在安装扩展时会有找不到安装
脚本的错误,就是因为在压缩时根下面没有install.rdf那一层导致的。
本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/160298