IndexedDB APIIDBFactory インターフェイスは、indexedDB への非同期アクセスを提供します。 このインターフェイスを実装するオブジェクトは、window.indexedDB です。このオブジェクトを使用すれば、IDBFactory インターフェイスに直接アクセスせずに、IndexedDB を開いたり (生成したり接続したり)、削除したりできます。

註: この機能は Web Workers 内で利用可能です。

メソッド

IDBFactory.open
データベースへの接続を開く要求をする現在のメソッドです。
IDBFactory.deleteDatabase
データベースの削除を要求するメソッドです。
IDBFactory.cmp
2 つのキーを比較して、大きいほうの値を戻り値として返すメソッドです。

次のコードスニペットでは、 データベースを開く要求をし、 成功の場合と失敗の場合のイベントハンドラーを登録しています。完全に動作する例は、To-do Notifications app (view example live.) を見てください。

var note = document.querySelector("ul");

// In the following line, you should include the prefixes of implementations you want to test.
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
// DON'T use "var indexedDB = ..." if you're not in a function.
// Moreover, you may need references to some window.IDB* objects:
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla has never prefixed these objects, so we don't need window.mozIDB*)

// Let us open version 4 of our database
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// these two event handlers act on the database being opened successfully, or not
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>Error loading database.</li>';
};
 
DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Database initialised.</li>';
    
  // store the result of opening the database in the db variable. This is used a lot later on, for opening transactions and suchlike.
  db = DBOpenRequest.result;
};

仕様

仕様書 策定状況 備考
Indexed Database API
IDBFactory の定義
勧告  
Indexed Database API 2.0
IDBFactory の定義
勧告  

ブラウザーの実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 24
完全対応 24
未対応 23 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 ありFirefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25
完全対応 25
未対応 25 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge Mobile ? Firefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
完全対応 あり
未対応 ? — 7.0
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Available in workersChrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 37IE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 37Opera Android 完全対応 ありSafari iOS ? Samsung Internet Android 完全対応 あり
cmpChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — ?
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25Edge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
deleteDatabaseChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — ?
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25Edge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
openChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — ?
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25Edge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: segayuu, Marsf, YuichiNukiyama
最終更新者: segayuu,