资源:
1。开发环境的配置:
https://developer.mozilla.org/en/Setting_up_extension_development_environment
2。如何写一个扩展:
http://kb.mozillazine.org/Getting_started_with_extension_development#Setting_up_your_environment
3。DOM的详细资料,包括window,document的所有方法和事件:
https://developer.mozilla.org/en/DOM
4.firefox 3的开发者资料。里面有各种资料的连接:
https://developer.mozilla.org/en/Firefox_3_for_developers
5。一个开发资料的索引:
http://kb.mozillazine.org/Development_resources
以下是中文资料:
1。实战 Firefox 扩展开发 :http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/?ca=drs-tp0808
2。使用 XUL 实现浏览器扩展 :http://www.ibm.com/developerworks/cn/web/wa-xul1/
在这2篇文章后面有更多的参考资料。
概念:
Chrome 指的是应用程序窗口的内容区域之外的用户界面元素的集合,这些用户界面元素包括工具条,菜单,进度条和窗口的标题栏等。Chrome 提供者能为特定的窗口类型(如浏览器窗口)提供 chrome。有三种基本的 chrome 提供者:
* 内容(Content):通常是 XUL 文件。
* 区域(Locale) :存放本地化信息。
* 皮肤(Skin):描述 chrome 的外观。通常包含 CSS 和图像文件。
Gecko dom:是一个解释dom的工具,也是一个规范了。用于解释html,xml的元素,事件等。
XUL(XML-based user interface language):用来构建功能丰富的用户界面程序。语法类似DHTML。对于firefox,使用XUL,联合js,css,设计出各种扩展。
XBL(eXtensible Bindings Language):是一种标记语言,用于创建特定的新元素或者绑定XUL构件(XUL wigets)。可以使用XBL为XUL增加新的内容,新的事件和新的接口属性和方法。
Overlays:XUL用来为界面增加新的内容。如为菜单增加一个选项。
XPCOM(Cross Platform Component Object Module):类似COM,是一个跨平台的组件构建框架,实现组件的模块化设计。开发出一个组件库,供XUL程序调用。支持多种语言:written in C, C++, and JavaScript, and they can be used from C, C++, JavaScript, Python, Java, and Perl.
XPConnect:用于XPCOM与javascript的互操作。
XULRunner:XUL构建于Gecko引擎之上,而一般的桌面程序不使用Gecko引擎。XULRunner解决这个问题:XULRunner 在 Gecko 引擎之外提供纯 XUL 运行时环境。构建运行在 XULRunner 上的应用程序时,一个不足之处是需要在应用程序中包含 XULRunner。不过,Firefox 3.0 已经构建在 XULRunner 之上。Firefox 和 XULRunner 使用相同的核心库和 libxul,这允许任何 XUL 应用程序使用 Firefox 作为 XUL 运行时,而不是 XULRunner。
做法:
1。创建新配置文件夹:(linux)
启动Firefox,并创建配置文件。
如:
cd /usr/lib/firefox
./firefox -profilemanager 或 ./firefox -p
2。使用新的配置环境,以便和日常使用环境分开。装开发工具。
3。修改firefox的一些参数
javascript.options.showInConsole = true.
nglayout.debug.disable_xul_cache = true.
browser.dom.window.dump.enabled = true.
javascript.options.strict = true.
extensions.logging.enabled = true.
修改了这些参数,firefox自带的错误控制台(error console) 就可以查看各种错误信息。
4。要据规定的文件目录结构编写各个文件,打包成xpi即完一个扩展的开发。