我有一个在 Chrome/Safari 中功能齐全的网站,并且严重依赖 SQLite 来存储/访问数据。但是,在 Firefox 中测试时,第一次调用 openDatabase() 时会出错。这是我相当标准的 openDB 函数:
function openDB(){
try {
if (!window.openDatabase) {
alert('not supported');
} else {
var shortName = 'tales';
var version = '1.0';
var displayName = 'Tall Tales Database';
var maxSize = 65536; // in bytes
db = openDatabase(shortName, version, displayName, maxSize);
// You should have a database instance in db.
}
} catch(e) {
// Error handling code goes here.
if (e == 2) {
// Version number mismatch.
alert("Invalid database version.");
} else {
alert("Unknown error "+e+".");
}
return;
}
}
就像我说的 - 当我警告 openDatabase 时,它是未定义的,并且打印的未知错误是“不受支持的”。我假设 Firefox 实际上支持 SQLite,是我做错了什么还是它需要特定于浏览器的代码?
谢谢! 克劳迪娅
最佳答案
Firefox 没有该功能。 Mozilla 认为 SQLite 不适合 Web,因此在 Firefox 4 中,他们将选择并实现 IndexedDB 规范。 W3C 的草案(包括 Mozilla 的提案)。这是一篇很好的博客文章,详细介绍了这些差异:http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/
所以,是的,您必须使用客户端特定代码才能支持 FF4 - 至少在其他主要浏览器中实现 IndexedDB 之前是这样。对于 FF4 之前的任何内容,不支持任何客户端数据库(不包括 localStorage 等)。
关于javascript - 通过 Javascript 调用 SQLite 时 Firefox 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3846784/