注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

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

2009-09-11 15:28:24|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
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

运行之后是这样的,还不错,呵呵
如何编写Firefox浏览器插件,一个下载百度空间所有文章的插件 - widebright - widebright的个人空间


  评论这张
 
阅读(554)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017