当我运行此代码时:
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/
Firefox 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);
}
}
})();
根据here,FF 16及以上版本不需要前缀。
我注意到的一点是浏览器没有要求使用indexedDB的权限,因为它可能是因为浏览器未配置为使用indexedDB?