IDBFactory インターフェイスの open() メソッドは、データベースへの接続を開くことを要求します。

このメソッドは即座に IDBOpenDBRequest オブジェクトを返し、そして非同期でデータベースを開きます。操作が成功した場合、このメソッドから返される request オブジェクトに result の属性として接続のための新しい IDBDatabase オブジェクトが設定されて、 success イベントが発生します。

データベースとの接続の間にエラーが発生した場合、このメソッドで返される request オブジェクトで、 error イベントが発生します。

upgradeneeded, blocked, versionchange イベントが発生することもあります。

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

構文

現在の標準では:

var IDBOpenDBRequest = indexedDB.open(name);
var IDBOpenDBRequest = indexedDB.open(name, version);

引数

name
データベースの名前。
version Optional
省略可。データベースを開くバージョン。バージョンが提供されずにデータベースが存在した場合、データベースへの接続はバージョンを変更せずに開かれます。バージョンが提供されず、データベースも存在しなかった場合、バージョン番号 1 が生成されます。

実験的な Gecko の options オブジェクト

options (version および storage) Optional
Gecko では、バージョン 26 から、標準外の options オブジェクトを IDBFactory.open の引数として指定することができ、データベースの version 番号と、加えてストレージに persistent (永続的) または temporary (一時的) のどちらを使用したいかを指定する storage 値を指定することができます。
警告: storage 属性は非推奨であり、まもなく Gecko から削除される予定です。永続的なストレージを得るには、代わりに StorageManager.persist() を使用してください。

メモ: 利用可能な様々なストレージ種別における詳細情報や、 Firefox がクライアント側データストレージを扱う方法については、 ブラウザーのストレージ制限と削除基準で見つけることができます。

返値

この要求に関連のある連続したイベントが発生する IDBOpenDBRequest オブジェクト。

例外

このメソッドは、次の型のような DOMError を持つ DOMException が発生する可能性があります。

例外 説明
TypeError バージョンの値がゼロかマイナスの値、または数値でない場合。

open を現在の仕様書の version 引数を付けて呼び出す例です。

var request = window.indexedDB.open("toDoList", 4);

次のコードスニペットは、データベースを開く要求をして、成功の場合と失敗の場合のイベントハンドラを登録しています。完璧に動作する例は、 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
open() の定義
勧告  
Indexed Database API 2.0
open() の定義
勧告  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 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 完全対応 あり

凡例

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

関連情報

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

このページの貢献者: mfuji09, umireon, fscholz, YuichiNukiyama
最終更新者: mfuji09,