[size=large]很久很久以前,我就会写Firefox XUL插件的Hello World
很久很久以后,我还是之只会Hello World
不过进来firefox上开发XUL插件似乎越来越流行了,于是,我继续未完成的革命.
第一天,先配置一下开发环境,来一个js操作数据库的Hello World
附件中还有一个xul写的提示界面
1.
开发环境配置
参考文章:
Firefox扩展开发学习杂记 http://www.zeali.net/entry/567
Extension Developer's Extension
https://addons.mozilla.org/zh-CN/firefox/addon/7434
此外还安装 firefox插件Sqlite Manager
关闭firefox,修改prefs.js
user_pref("javascript.options.showInConsole",true);
user_pref("extensions.logging.enabled",true);
user_pref("nglayout.debug.disable_xul_cache",true);
user_pref("browser.dom.window.dump.enabled",true);
user_pref("javascript.options.strict ",true);
插件 DebugLogger 用法
logMngr = Components.classes["@mozmonkey.com/debuglogger/manager;1"] .getService(Components.interfaces.nsIDebugLoggerManager);
logger = logMngr.registerLogger("程序名");
logger.log(3, "Hello World");
我使用的规则如下
1.普通日志
2.程序调试
3.警告
4.错误
5.致命错误
2.
数据库的使用
参考文章:http://developer.mozilla.org/cn/docs/Storage
用Execute JS测试运行
//这里的生成一个文件对象
var file = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("ProfD", Components.interfaces.nsIFile);
file.append("数据库名称.sqlite");
//这是生成一个数据库对象
var storageService = Components.classes["@mozilla.org/storage/service;1"].getService(Components.interfaces.mozIStorageService);
var mDBConn = storageService.openDatabase(file);
//执行一句简单的sql
mDBConn.executeSimpleSQL("CREATE TABLE foo (a INTEGER,b TEXT)");
mDBConn.executeSimpleSQL("INSERT INTO foo VALUES (2008,'张沈鹏')");
在我的电脑上生成了
D:\USERPROFILE\Application Data\Mozilla\Firefox\Profiles\sxqnh3dj.default\数据库名称.sqlite
Sqlite Manager打开,可以看到有一个表foo,和我刚刚插入的数据.
OK,再演示一下查询
var statement = mDBConn.createStatement("SELECT * FROM foo WHERE a = ?1");
statement.bindInt32Parameter(0,2008);//位置,数值
while (statement.executeStep()) {
var xx=statement.getInt32(0);
alert(xx)
xx=statement.getUTF8String(1);
alert(xx)
}
statement.execute();//不用返回结果的sql,比如insert
[/size]
很久很久以后,我还是之只会Hello World
不过进来firefox上开发XUL插件似乎越来越流行了,于是,我继续未完成的革命.
第一天,先配置一下开发环境,来一个js操作数据库的Hello World
附件中还有一个xul写的提示界面
1.
开发环境配置
参考文章:
Firefox扩展开发学习杂记 http://www.zeali.net/entry/567
Extension Developer's Extension
https://addons.mozilla.org/zh-CN/firefox/addon/7434
此外还安装 firefox插件Sqlite Manager
关闭firefox,修改prefs.js
user_pref("javascript.options.showInConsole",true);
user_pref("extensions.logging.enabled",true);
user_pref("nglayout.debug.disable_xul_cache",true);
user_pref("browser.dom.window.dump.enabled",true);
user_pref("javascript.options.strict ",true);
插件 DebugLogger 用法
logMngr = Components.classes["@mozmonkey.com/debuglogger/manager;1"] .getService(Components.interfaces.nsIDebugLoggerManager);
logger = logMngr.registerLogger("程序名");
logger.log(3, "Hello World");
我使用的规则如下
1.普通日志
2.程序调试
3.警告
4.错误
5.致命错误
2.
数据库的使用
参考文章:http://developer.mozilla.org/cn/docs/Storage
用Execute JS测试运行
//这里的生成一个文件对象
var file = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("ProfD", Components.interfaces.nsIFile);
file.append("数据库名称.sqlite");
//这是生成一个数据库对象
var storageService = Components.classes["@mozilla.org/storage/service;1"].getService(Components.interfaces.mozIStorageService);
var mDBConn = storageService.openDatabase(file);
//执行一句简单的sql
mDBConn.executeSimpleSQL("CREATE TABLE foo (a INTEGER,b TEXT)");
mDBConn.executeSimpleSQL("INSERT INTO foo VALUES (2008,'张沈鹏')");
在我的电脑上生成了
D:\USERPROFILE\Application Data\Mozilla\Firefox\Profiles\sxqnh3dj.default\数据库名称.sqlite
Sqlite Manager打开,可以看到有一个表foo,和我刚刚插入的数据.
OK,再演示一下查询
var statement = mDBConn.createStatement("SELECT * FROM foo WHERE a = ?1");
statement.bindInt32Parameter(0,2008);//位置,数值
while (statement.executeStep()) {
var xx=statement.getInt32(0);
alert(xx)
xx=statement.getUTF8String(1);
alert(xx)
}
statement.execute();//不用返回结果的sql,比如insert
[/size]