Window.localStorage
localStorage プロパティは読み取り専用で、ローカルの Storage オブジェクトにアクセスできます。 localStorage は Window.sessionStorage によく似ています。唯一の違いは、localStorage に保存されたデータには保持期間の制限はなく、sessionStorage に保存されたデータはセッションが終わると同時に(ブラウザーが閉じられたときに)消去されることです。
構文
js
myStorage = localStorage;
値
例外
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() を利用してデータを追加しています。
js
localStorage.setItem('myCat', 'Tom');
localStorage からの項目の読み込みは以下のようにできます。
js
var cat = localStorage.getItem('myCat');
localStorage からの項目の削除は以下のようにできます。
js
localStorage.removeItem('myCat');
localStorage からの全項目の削除は以下のようにできます。
js
localStorage.clear();
メモ: 詳細な使用例は Web Storage API の使用 の記事を参照してください。
仕様書
| Specification |
|---|
| HTML Standard # dom-localstorage-dev |
ブラウザーの互換性
BCD tables only load in the browser