我正在尝试在 Safari 11 中使用本地数据库 API,但得到:
未知错误 操作不安全...
这曾经对我有用,但现在不再有用了。
代码如下:
testDB = {};
function initDatabase() {
try {
if (!window.openDatabase) {
alert("Databases are not supported in this browser.");
} else {
var shortName = 'testDB';
var version = '1.0';
var displayName = 'Test Database';
var maxSize = 100000; // bytes
console.log('openDatabase');
testDB = openDatabase(shortName, version, displayName, maxSize);
}
} catch (e) {
if (e == 2) {
// Version number mismatch.
console.log("Invalid database version.");
} else {
console.log("Unknown error " + e.message + ".");
}
return;
}
}
initDatabase();
我在 Firefox 中尝试过这个,但似乎不再支持数据库 API。
关于我应该如何进行的任何建议?
似乎 Web Sql 标准不再由 W3C 维护,现在 Firefox 和其他浏览器不再支持它。查看此链接以获取更多信息
https://www.w3.org/TR/webdatabase/
https://hacks.mozilla.org/2010/06/beyond-html5-database-apis-and-the-road-to-indexeddb/
WebSql 已被弃用,这就是浏览器删除支持的原因。您应该迁移到 indexeddb。如果您希望在indexeddb中使用现有的sql查询,并且不想处理indexeddb的复杂性 - 则应使用JsStore。它提供了类似sql的api,用于在indexeddb中存储数据。