当我运行此代码时:
var idbSupported = false;
var db;
document.addEventListener("DOMContentLoaded", function(){
if("indexedDB" in window) {
idbSupported = true;
}
if(idbSupported) {
var openRequest = indexedDB.open("test",1);
openRequest.onupgradeneeded = function(e) {
console.log("Upgrading...");
}
openRequest.onsuccess = function(e) {
console.log("Success!");
db = e.target.result;
}
openRequest.onerror = function(e) {
console.log("Error: " + e.target.errorCode);
// console.dir(e);
}
}
},false);
从本教程:
http://net.tutsplus.com/tutorials/javascript-ajax/working-with-indexeddb/
在火狐 17 中。
不知道为什么我收到错误事件而不是成功事件。
简化的代码给出了同样的错误:(只需复制粘贴)到您的控制台中查看。
(function(){
if(window.indexedDB) {
var openRequest = indexedDB.open("test", 1);
openRequest.onupgradeneeded = function(e) {
console.log("Upgrading...");
}
openRequest.onsuccess = function(e) {
console.log("Success!");
db = e.target.result;
}
openRequest.onerror = function(e) {
console.log("Error: " + e.target.errorCode);
console.dir(e);
}
}
})();
根据这里,FF 16 及以上不需要前缀。
我注意到的一件事是,浏览器没有要求使用 indexedDB 的权限,所以浏览器可能没有配置为使用 indexedDB?