Firefox 的Add-on备忘

Firefox的扩展主要以动态链接库Plugin和js的Add-on为主。前者以开发动态链接库的方式,一般是firefox浏览器提供标准的NPAPI函数供插件调用,(NPAPI好像Opera浏览器也为它的插件提供的),现在要记录的是第二种方式,第一种就不多说了。

如果要直接访问页面元素,用Add-on方式肯定是比插件方式更简单的操作了。
Add-on模板生成地址:
https://addons.mozilla.org/en-US/developers/tools/builder
有了上面的制作工具,填填表单就可以生成基本的插件模板,用户可以自己选择自己需要的功能。生成的插件解压后放到firefox的extensions目录下,重启firefox就会看到插件已经成功安装。
\chrome\content目录下放了主程序和插件的主要配置,如插件的首选项配置,插件显示的位置配置。
\chrome\locale 目录下放了各种语言包,如果你想插件国际化的话就要写很多,不想的话可直接改en-US内的语言,中文的话存成UTF-8就OK了。
\chrome\skin 目录下放了一个css,这个css可以控制插件显示样式,如目录项的背景色,或工具条的样式。


感觉生成的文件一看就懂,也没什么好说的。直接记些细节。
1.使用 window.content.document 可以访问当前firefox展示的页面
2.插件可以访问gBrowser全局变量,以增加一些事件,如页面加载完成事件:
gBrowser.addEventListener(“DOMContentLoaded”, OBJ.onPageLoaded, true);
这个事件高度事,可收到事件e, e.originalTarget即是当前加载页的document.此document就可以使用getElementById等等各种document对象的函数。
3.访问文档中的js函数对象和变量的方式:
假设已经取到想要的文档,变量为doc,则可使用“doc.defaultView.wrappedJSObject.对象名”来访问。比如说一个页面里有jQuery变量$,你就可以使用doc.defaultView.wrappedJSObject.$来取到页面里的jQuery变量,然后就可以调用它了。调用函数可以 这样调用。
4.获取插件首选项,具有首选项的插件可以用以下方式取得:
var prefManager=Components.classes[“@mozilla.org/preferences-service;1”].getService(Components.interfaces.nsIPrefBranch);
var 变量名=prefManager.getCharPref(‘extensions.类名.变量名’);
5.还有一点需要注意的就是访问自己定义的add-on类的变量时不能用this去访问,就算在类的内部也不可以,而要用类名.变量名方式去访问。

firefox插件接口有太多的东西,知道上面的这些东西就可以读写首选项和操作页面中的任何元素,基本上可以实现所有的常规功能。非常规功能的话就得深入了解firefox的文档了。文档地址:
https://addons.mozilla.org/en-US/developers/

Join the Conversation

2 Comments

Leave a Reply to hoverlees

Your email address will not be published. Required fields are marked *