分类: 系统运维
2010-08-11 19:41:42
Hist:
20100811, draft
这里从MDC摘要了helloworld firefox extension的创建基本内容, 参考备忘. 我的firefox extenion的第一步.
为了更好的开发extension, 需要改变一些firefox的设置, 出于不影响firefox一般使用的目的, 可以配置一个专用的profile用于extension的开发.
命令:
firefox.exe –no-remote
按照弹出框的导引创建自己的profile. 这里设profile名是dev, 位置是d:\firefox_profile. 注意,cmd执行这个命令前, 要设PATH.
以后可以执行下面的命令调用使用这个profile的firefox:
firefox.exe –no-remote –P dev
建议配置下面firefox preference几项:
nglayout.debug.disable_xul_cache |
true |
browser.dom.window.dump.enabled |
true |
javascript.options.showInConsole |
true |
javascript.options.strict |
true |
配置方法, 在地址栏输入about:config, 然后选择对应项并更改即可. 没有的项,可以右击鼠标创建.
此例在d:\zcatt目录下创建extension的目录, 具体根据自己的实际相应调整.
目录结构
d:\zcatt\helloworld
|--install.rdf,
chrome.manifest
|-
content
| |--clock.js, clock.xul, overlay.xul
|-locale
|- en-US
| |-- clock.dtd, overlay.dtd
|- zh-CN
|---
clock.dtd, overlay.dtd
源文件的列表:
install.rdf:
chrome.manifest
content helloworld
content/
locale helloworld
en-US locale/en-US/
locale helloworld
zh-CN locale/zh-CN/
overlay
chrome://browser/content/browser.xul chrome://helloworld/content/overlay.xul
overlay.xul
oncommand="window.openDialog('chrome://helloworld/content/clock.xul','Clock','chrome,centerscreen,modal');"/>
clock.xul
title="&helloworld.clock;"
buttons="accept"
onload="initClock();">
clock.js
function initClock()
{
showCurrentTime();
window.setInterval(showCurrentTime,
1000);
}
function
showCurrentTime() {
var textbox = document.getElementById("currentTime");
textbox.value = new
Date().toLocaleTimeString();
textbox.select();
}
en-US\overlay.dtd
zh-CN\overlay.dtd
你好,世界!">
en-US\clock.dtd
zh-CN\clock.dtd
时钟">
当前时间:">
相对与打包xpi, 更适合开发的方法如下:
创建一个文件,文件名应当同install.rdf中的
helloworld@xuldev.org
D:\zcatt\helloworld
将文件放到firefox preference的extension目录下, 本例中在d:\firefox_profile下找.
准备好这些, 大功基本搞成了.
在cmd中启动 firefox.exe –no-remote –P dev
firefox运行起来了, 点’工具’菜单, 你看到了什么 ^-^ 试着选中它看看.
还可以改变general.useragent.locale的值(通过about:config)为en-US或者zh-CN, 然后重新启动firefox, 再看看效果.
1. https://developer.mozilla.org/En/Firefox_addons_developer_guide