Window.localStorage

localStorage プロパティは読み取り専用で、ローカルの Storage オブジェクトにアクセスできます。 localStorageWindow.sessionStorage によく似ています。唯一の違いは、localStorage に保存されたデータには保持期間の制限はなく、sessionStorage に保存されたデータはセッションが終わると同時に(ブラウザーが閉じられたときに)消去されることです。

構文

myStorage = localStorage;

現在のオリジンのローカルストレージ領域にアクセスするのに使用できる Storage オブジェクトを返します。

例外

SecurityError

リクエストがポリシーの決定に反している、またはオリジンが妥当な scheme/host/port tuple でない (これは例えば、オリジンが file:data: スキームを使うときに起こります)。例えば、ユーザーがブラウザー設定で特定オリジンへのデータ永続化のパーミッションを拒否していることもあります。 なお、ユーザーが Cookie をブロックしている場合、ブラウザーはこれをデータ永続化の拒否と解釈する可能性が高いです。

説明

localStorage に保存されるキーと値は常に UTF-16 文字列 (1 文字に 2 バイトを使用する) になります。オブジェクトと同様に、整数のキーは自動的に文字列に変換されます。

localStorageに保存されるデータはそのページのプロトコル固有であることに注意する必要があります。特に、http://example.com のような HTTP で読み込まれているページにおける localStorage は、https://example.com のような対応する HTTPS で読み込まれているページにおける localStorage とは異なるオブジェクトを返します。

ドキュメントが file: URL から読み込まれている (すなわち、ファイルをウェブサーバーから読み込んだのではなくローカルのファイルシステムからブラウザーで直接開いている) 場合、localStorage に関する要件は定義されておらず、ブラウザーによって異なる可能性があります。

現在の全てのブラウザーにおいて、localStorage はそれぞれの file: URL に対して異なるオブジェクトを返すようです。すなわち、それぞれの file: URL がそれぞれ独自のローカルストレージ領域を持つようです。しかし、前述のように file: URL における要件は未定義なので、この挙動は保証されず、この挙動に頼るべきではありません。ブラウザーはいつでも file: URL における localStorage の扱いを変えることが可能であり、実際にいくつかのブラウザーは変えています。

以下のスニペットでは現在のドメインのローカル Storage オブジェクトにアクセスし、Storage.setItem() を利用してデータを追加しています。

localStorage.setItem('myCat', 'Tom');

localStorage からの項目の読み込みは以下のようにできます。

var cat = localStorage.getItem('myCat');

localStorage からの項目の削除は以下のようにできます。

localStorage.removeItem('myCat');

localStorage からの全項目の削除は以下のようにできます。

localStorage.clear();

メモ: 詳細な使用例は Web Storage API の使用 の記事を参照してください。

仕様書

Specification
HTML Standard
# dom-localstorage-dev

ブラウザーの互換性

BCD tables only load in the browser

関連情報