firefox 扩展开发技巧

firefox 扩展开发

Firefox Extension
参考:http://developer.mozilla.org/en/Extensions
http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/

目录结构:
chrome.mainfest        // 定义整个扩展的目录结构
install.rdf        // 定义扩展的ID,名称等等信息
chrome/
chrome/content/        // 定义扩展界面(.xul文件),定义扩展界面实现功能的逻辑(.js文件)
chrome/skin/        // 定义扩展界面上用到的图片,属性风格,皮肤文件等(.css,.ico,.png-600)
chrome/locale/
chrome/locale/en-US/        // 定义翻译字符串(.dtd文件),属性翻译字符串(.properties文件)
chrome/locale/zh-CN/     // 定义翻译字符串(.dtd文件),属性翻译字符串(.properties文件)
defaults/
defaults/preferences/    // 定义需要保存的信息默认值(.js文件)
components/        // 定义扩展逻辑用的方法接口(.xpt, .dll文件)

安装扩展:
将上面目录结构的文件打包成.zip文件,然后改后缀为.xpi,拖到firefox界面上就会弹出安装界面安装就可以了

chrome.mainfest详读

// 示例代码详解
# 在前面加"#"表示注释
# 注册chrome.manifest
# 指定将要读取的修改内容的路径,后面必须带"/" 可以修改Toolbars, menu bars, progress bars,
# and window title bars are all examples of elements that are typically part of the chrome

content    my_extension_name    chrome/content/

# 指定将要加载的皮肤路径,后面必须带"/"
skin    my_extension_name        classic/1.0     chrome/skin/

# 指定将要读取的语言路径,后面必须带"/"
locale    my_extension_name        en-US            chrome/locale/en-US/
locale    my_extension_name        zh-CN            chrome/locale/zh-CN/

# 将后面的文件添加到前面的文件里
overlay    chrome://browser/content/browser.xul    chrome://my_extension_name /content/statusbarOverlay.xul

# 都是可选参数
# style         chrome://URI-to-style                                 chrome://stylesheet-URI [flags]
# override     chrome://package/type/original-uri.whatever     new-resolved-URI [flags]
# resource     aliasname                                             uri/to/files/ [flags]
# application = app-ID
# appversion 操作符 version    (操作符为"=", "<", ">", "<=", ">=")
# os = WINNT(操作系统)
# osversion >= 10.5
# platform格式如下:
# content     global-platform jar:toolkit.jar!/toolkit/content/global-platform/     platform

install.rdf详读    
参考:http://developer.mozilla.org/en/Building_an_Extension


http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">


// 下面的参数是必须要添加的
//     当前平台下生成的GUID
//       由"."连接的数字
//     指定的数字.
        // 2代表Extensions,4代表Themes,8代表Locale,32代表Multiple Item Package
//     指定这个扩展是为那个应用程序使用的
// 格式如下:    指定的应用程序的GUID;
//        ,分别为应用程序的最小最大版本号
//
// 
//   {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
//    1.5
//    2.0.0.*
// 

//

//     显示在应用程序界面上的扩展名称

// 下面的参数是可选择添加的
//         描述该扩展的功能
//         创始人
//         主页
//         更新主页
//
//
//
//         开发者
//         翻译者
//          捐助者
//     目标程序的系统平台
//         集中显示一些扩展的信息
//     指定将来用那种语言来显示信息(必要),在使用了后用

// 例子:
{69354808-F0D7-40CC-BB5F-8C1B8F57CECC}
0.91
2
statusbar settor

// 目标程序为firfox

   
        {ec8030f7-c20a-464f-9b0e-13a3a9e97384} //firefox的GUID
        1.5
        2.0.0.*
   

// 添加可选的信息
// Federico Parodi
// Stefano Verna
// Nils Maier
// Federico Parodi
// Stefano Verna
// Nils Maier
// chrome://dta/content/about/about.xul
// chrome://dta/skin/common/icon.png-600
// http://downthemall.net/
// chrome://dta/content/preferences/prefs.xul


chrome 详解:
1 chrome/content/
content这个文件夹里的文件类型主要包括.js和.xul两种
.xul文件主要用来实现界面布局的,当然也可以实现简单的逻辑操作,建议所有逻辑都放到相应的.js里去处理,下面给出实例代码statusbarOverlay.xul:

// 定义xul中用到的多语言字符串

// 所有的.xul文件都要加的项,id可以随便设置的
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    //申明要用到的.js文件