我有以下 javascript 函数:
function initDatabase() {
if (!window.openDatabase) {
alert('Databases not supported in this browser');
} else {
var shortName = 'TestDB';
var version = '1.0';
var displayName = 'HTML5 Test Database';
var maxSize = 1024 * 1024;
db = openDatabase(shortName, version, displayName, maxSize);
alert('opened db ' + db); //this says its a database
db.transaction(function (tx) {
alert('before create'); //never gets here
tx.executeSql('CREATE TABLE IF NOT EXISTS Person(FirstName TEXT, MiddleName TEXT, LastName TEXT);');
alert('after create');
});
alert('after transaction'); //does get here
}
}
在文档准备好时被调用:
$(document).ready(function () {
initDatabase();
});
正如您从评论中看到的那样,数据库似乎已创建/打开(虽然我不确定如何验证这一点)但是当我尝试创建事务并执行一些 sql 时,似乎从未输入该函数。
我做错了什么吗?我如何验证数据库是否存在?
我正在使用 Chrome 14 进行测试。
谢谢
最佳答案
警报似乎是警告。它可能正在暂停导致它无法工作的事情。
alert
无论如何(在调试方面)都被 console.log
“取代”了,如果我用日志替换警报,一切似乎都正常(我得到所有四个日志)。
(要查看这些 console.log
调用,您可以按 F12 并单击 Console。)
关于javascript - HTML5/js sqlite数据库不进入交易功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919188/