您的位置:首页 > 其它

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

2013-03-11 15:26 656 查看


如何编写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

运行之后是这样的,还不错,呵呵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: