0

私はこのコードを使用してindexedDBAPIを利用しています。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コールバックを使用し、setVersionメソッドをchromeしてデータベース構造を変更することです。

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 に答える