0

当我运行此代码时:

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?

4

0 回答 0