1

以下は、indexedDB を開くための私の Javascript コードです。以前に Firefox 21 でコードを何度か正常にテストしましたが、現在、e.target.error.name の indexedDB.open() 関数によって AbortError が返されています。

var openDB = function(dbCallBack) {
  var openDB = function(dbCallBack) {
    window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 
    window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
    window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;

    request = window.indexedDB.open('mgDB');
    request.onerror = function(e) {
      alert('Error: ' + e.target.error.name + ': Failed to open the database');
      dbCallBack(false, false);
    };

    request.onupgradeneeded = function(e) {
      dbCallBack(true, false);
    };

    request.onsuccess = function(e) {
      db = e.target.result;
      if (db.objectStoreNames.length == 0) { 
        dbCallBack(true, true);
      } else {
        dbCallBack(true, false);
      }
    };
  };
};

openDB() 関数がどのように呼び出されるかを次に示します。dbCallBack 関数のコードは以下のインラインです。

if (!db) {
    var dbOpenSuccess;
    openDB(function(dbOpenSuccess, emptyTableMsg) {
      if (emptyTableMsg) {
        displayEmptyTableMsg();
      } else if (dbOpenSuccess) {
        displayTableContents();         
      }
    }); 
}

注: テストを再実行する前に、ブラウザーのキャッシュをクリアし、フォルダー C:\users{userID}\AppData\Roaming\Mozilla\Firefox\Profiles から手動で indexedDB を削除しようとしました。http://nparashuram.com/IndexedDBで同じコードを正常に実行しました。何が間違っている可能性がありますか?

4

1 に答える 1