`
seven_cuit
  • 浏览: 89566 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在eclipse中动态开发Firefox扩展

阅读更多

   在前一篇文章中跟大家分享了怎么使用spket在eclipse中开发Firefox扩展,但是存在的一个缺点是默认的chrome.manifest文件中对content,skin,locale提供的地址都是相关jar包的,这样需要方便我们生成xpi安装文件,但是作为开发人员,我们往往需要对扩展进行多次修改与调试再最后生成安装文件,这时可以用以下的方法来实现Firefox扩展的动态开发,当我们修改扩展源文件时,被修改结果立即被反应在浏览器上。

1.首先我们需要对chrome.manifest文件做一个比较透彻的认识:

   chrome.manifest中常用的有以下几种元素:content,skin,locale,overlay

   他们的格式如下:

   content 包名 content文件夹中内容相对chrome.manifest文件的位置/     (注意,最后这个"/"不能省略)

   skin       包名   皮肤名   skin文件夹中内容相对chrome.manifest文件的位置/

   locale    包名   语言名    locale文件夹中内容相对chrome.manifest文件的位置/

 

 

   注意这三个文件都与存放相应内容的文件夹的位置有关,当相应文件夹改变是,他们也要跟着改变

 

   overlay chrome://被覆盖的overlay的URI地址   chrome://overlay的URI地址

 

    与上面三个元素不丗,overlay无文件夹的位置无关,它总能通过这个抽象的chrome://找到overlay在什么地方,css与js文件也使用chrome://来指定。

 

2.当使用spket创建一个firefox extension project 后的目标结构如下(取项目名为myextension,下面使用的包名也为myextension):

 

   myextension

        |+content

        |+defaults

        |+locale

        |+skin

        |-.project

        |-build.xml

        |-chrome.manifest

        |-install.rdf

 

 

  则如果想进行进行动态开发的话,我们需要将chrome.manifest中自动生成的用jar方式表示的语句去掉,修改后的chrome.manifest的内容大致如下:

 

content myextension content/
locale    myextension	en-US		locale/en-US/
skin	      myextension	classic/1.0	skin/
overlay chrome://browser/content/browser.xul chrome://myextension/content/myextension.xul
 

   然后我们需要创建一个指针文件,指向这个项目,文件名称与此扩展的ID相同,类似myextension@XXX.com,将此文件放入自己的firefox的profiles 文件夹下的extensions 文件夹中,这个文件夹的位置一般是:

C:\Documents and Settings\YOURACCONUTNAME\Application Data\Mozilla\Firefox\Profiles\XXX(此处名称不唯一)\extensions,这个指针文件的内容就是你的项目的绝对地址.

 

3.现在打开Firefox,在没有安装扩展的情况下,这个扩展已经在浏览器中了,这时我们在eclipse中修改源文件内容后,只需在Firefox中使用Reload all Chrome命令就可以后到修改后的扩展效果(Reload all chrome 是Fireofx扩展 Extension Developer 的一个命令,需要首先安装这个扩展)。

 

 

4.当扩展功能全部完成且调试通过时,我们就需要将它打包成XPI文件了,这个时候只需要简单修改一下chrome.manifest文件就可以了,修改后的效果如下:

 

 

content myextension  jar:chrome/myextension.jar!/content/
locale    myextension en-US jar:chrome/myextension.jar!/locale/en-US/
skin	myextension	classic/1.0	jar:chrome/myextension.jar!/skin/
overlay chrome://browser/content/browser.xul chrome://myextension/content/fedsearchbar.xul

 

  通过与上面对比,我们看到只有content,locale,skin这三具部分做了修改,而overlay没有作修改,相应的源文件内部css,js引用元素也不用作修改。

  另外注意,这个地方修改chrome.manifest文件并不是告诉机器去哪里找content,locale等文件,使用ant builder时spket会自动找到他们的,这个地方这样修改chrome.manifest文件是因为它将会被包含在myextension.xpi文件中,所以需要将他修改成在myextension.xpi文件中相应的形式。

 

5.注意的地方:

   a.在动态开发过程中修改了chrome.manifest文件,刚被修改的效果不能通过Reload all chromes命令立即表现出来,因为chrome.manifest只在浏览器启动时被解析,所以需要重新启动浏览器才可以。

   b.在动态开发过程中修改了install.rdf(这种情况比较少),这时要修改指针文件(pointer file)指向的文件夹的修改时间才可以!在Windows下可以通过在此文件夹中创建一个新的文件夹再删除的方式来达到这个效果。

 

   至此,整个Firefox扩展开发周期结束

分享到:
评论
3 楼 leero 2010-01-17  
请问楼主,我开发的一个鬼东西,在chrome list里面无显示,但是在附加组件列表里面有。
2 楼 seven_cuit 2009-02-19  
terryang 写道

感谢!楼主还在继续着firefox的插件开发吗?

目前还在继续学习Firefox扩展开发
1 楼 terryang 2009-02-05  
感谢!楼主还在继续着firefox的插件开发吗?

相关推荐

    spket(eclipse插件)

    该插件使用eclipse来开发Firefox extension的工具。解压处spket文件夹放置到eclipse目录下的dropins文件夹下,重启eclipse即可

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 06.jedis客户端在spring中的配置.avi │ 07.测试spring中的JedisClient.avi │ 08.缓存同步-服务发布.avi │ 09.后台调用缓存同步服务.avi │ 10.solr单机版安装.avi │ 11.中文分析器配置.avi │ 12.导入数据-...

    Eclipse 插件aptana part4_2

    但调试需要firefox流览器.也可以在本站下载.安装. ----------------------------------------------------------- Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,...

    Eclipse 插件aptana part4_4

    但调试需要firefox流览器.也可以在本站下载.安装. ----------------------------------------------------------- Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,...

    Eclipse 插件aptana part4_3

    但调试需要firefox流览器.也可以在本站下载.安装. ----------------------------------------------------------- Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,...

    Eclipse 插件aptana part4_1

    但调试需要firefox流览器.也可以在本站下载.安装. ----------------------------------------------------------- Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,...

    Java开发一款灵活且易扩展的网站内容管理系统.zip

    系统后台兼容的浏览器:IE9+、Edge、Firefox、Chrome。 前台页面兼容的浏览器取决于模板,使用者可以完全控制模板,理论上可以支持任何浏览器。 搭建步骤 创建数据库。如使用MySQL,字符集选择为utf8或者utf8mb4...

    IBM WebSphere Portal门户开发笔记01

    3、如何在主题与皮肤中获取PORTAL登录用户信息 90 4、PORTAL6.1.0.3无法查找任何的用户或用户组 92 5、如何个性化PORTLET添加控制板 93 6、IBM WCM中匿名搜索 94 7、开发一个系统登录的PORTLET 95 8、WEBSPHERE ...

    jeecg-framework-3.1.0.RELEASE

    复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。 实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量 架构说明 JEECG V3.0...

    spket破解版jar包

    Spket(http://www.spket.com/)是一种很强大的Javascript编辑器,它是基于Eclipse内核的IDE(可以以独立可执行文件,或者...在开发Ext、火狐扩展或其它Javascript相关程序的时候,可以使用它作为不错的代码编辑工具。

    MRCMS内容管理系统-其他

    MRCMS是一款Java开发的内容管理系统,采用数据模型+模板+插件实现,内置提供了文章模型发布功能。 软件特点: ...测试工具:Spring Test、Apache JMeter、各种浏览器(Chrome/Firefox/Safari/Opera/IE11)

    Salesforce增强代码搜索器「Salesforce Enhanced Code Searcher」-crx插件

    在firefox上可以找到类似的插件,可以在这里下载:https://addons.mozilla.org/en-US/firefox/addon/salesforce-quick-search/使用方法:以下两个部分都添加到了设置页面,因此这仅对开发人员和管理员有用,此工具对...

Global site tag (gtag.js) - Google Analytics