如何编写Firefox浏览器插件,一个下载百度空间所有文章的插件

如何编写Firefox浏览器插件,一个下载百度空间所有文章的插件

2009-09-11 15:28    阅读    评论 1.开发Firefox 插件的官方文档。到firefox主页上去找就可以找的到。他们的文档还是很详细的,不过像我这种英语水平的看起来不是很容易。
https://developer.mozilla.org/En/Extensions/Firefox
http://kb.mozillazine.org/Extension_development

最主要的参考资料都在这个页面的链接里面了
https://developer.mozilla.org/En/Documentation_hot_links

常见功能的例子
https://developer.mozilla.org/en/Code_snippets

2、先浏览一遍上面的网页,就清楚了。我也简单的介绍几个概念吧。

(1)XUL 这个是用来编写插件界面的语言,类似HTML,如果你会HTML 那么一切都很简单了。
(2) javascript 没什么好说的了,网页上是这样用,插件里也是这样用。
     就是我写的时候需要不时参考一下firefox的javascript 手册,忘记了什么查查很方便的。
   Core JavaScript 1.5 Reference - MDC   https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference
   Core JavaScript 1.5 Guide - MDC    https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide

   调试时,直接在firefox打开 xul文件,然后在firefox的“错误控制台”中可以看到错误的输出吧。当然用firebug可能也有帮助。不过我感觉调试还不是很方便,大多时候都是用alert()来了,我也不知道有什么好办法没有,有的可以告诉我一下。
(3)XPCOM 类似windows上面的COM概念,就是定义了环境无关的接口标注,好像可以用c 啊 等javascript来写,然后按他定义的标注开放接口别人就可以用了。不过我是没写国了。Firefox的各种功能也都是封装成一个一个的XPCOM 的,所以一要在插件里面调用firefox提供的功能就是要先 请求 服务然后接口什么的。和windows的COM有点类似。一开始不知道,找了半天还找不到怎么在自己的脚本里面调用firefox的功能借口的。给个例子,比如要查找本地目录是否存在和创建他,代码是这样的
verifyDownloadDir: function (fileName) {

   var file = Components.classes["@mozilla.org/file/local;1"]
                                  .createInstance(Components.interfaces.nsILocalFile);
   file.initWithPath(fileName);
   if(!file.exists() || !file.isDirectory() ) {   // if it doesn't exist,
       // create
       alert("指定的路径不存在或者不是一个目录!");
       return false;    
   }

   try {
       file.append("百度空间文章");
       file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777); //0777可读可写可执行,参考参数说明https://developer.mozilla.org/en/PR_Open#Parameters

       downloadPath = file.path; // 开始保存的时候,文件放在这里

       file.append("data");
       file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
       // throw "ddd";
   }
   catch (e) {
       alert("创建子目录失败!");
       return false;
   }

   return true;
},



上面说的Code_snippets里面也有很多例子了。另有 
XPCOM API Reference - MDC   https://developer.mozilla.org/en/XPCOM_API_Reference


3、编写一个实际的插件,用下面这个向导生成一个小例子,然后再这个基础上面修改就行了
http://ted.mielczarek.org/code/mozilla/extensionwiz/
调试的时候可以按照 readme.txt的说明来配置一下环境。
运行里面的 build.sh 即可以生成一个 *.xpi 插件包了,其实就是个zip文件,就可以提供给别人呢安装使用了。

后面的事就自己来咯,参考别人的插件是怎么写的也是个不错的主意。

我写个一个下载百度空间里面所有文章的插件。现在可以把我以前那个百度空间的文章下载下来打包保存咯。呵呵 
下载下载,把后最名改为widebright.xpi,然后拖到firefox里面去就会提示时候安装插件了。装完重启,在“工具” 菜单里面就可以找到一个 绿色的"widebright"的小插件“的项了。
https://sites.google.com/site/widebright/firefox-bai-du-kong-jian-xia-zai-cha-jian/widebright.xpi.zip

运行之后是这样的,还不错,呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值