0

我一直在使用代码来使用 indexedDB api。在 FF 14 中运行良好。但在 Chrome (v.21) 中,我遇到了一些错误。目前我的 createObjectStore 命令有问题:

db.createObjectStore(objectStoreName, { keyPath: 'id', autoIncrement: true });

是因为 Chrome 使用的规格与 FF 不同吗?有些方法仍然不同吗?

谢谢

this.init = function (successCallback) {

        var openRequest = indexedDB.open(dbName);

        openRequest.onupgradeneeded = function (e) {

            db = e.target.result;

            if (!db.objectStoreNames.contains(objectStoreName)) {
                console.log('Create objectstore');
                db.createObjectStore(objectStoreName, { keyPath: 'id', autoIncrement: true });
            }

            successCallback(e);

        };

        openRequest.onsuccess = function (e) {

            db = e.target.result;

            db.onerror = function (event) {
                console.log("Database error: " + event.target.errorCode);
            };

            successCallback(e);

        };

    };
4

1 回答 1

0

你得到什么错误?

FF和chrome的区别在于FF使用onupgradeneeded回调,chrome使用setVersion方法改变数据库结构

var req = indexedDB.open("name");
req.onsuccess = function(e){
    var db = req.result.db;
    var upgradereq = db.setVersion("1")
    upgradereq.onsuccess = function(event){
       upgradereq.result.db.createObjectStore("objectStoreName");
    }
}
于 2012-08-17T12:25:45.767 回答