--- title: Storage slug: Web/API/Storage tags: - API - Interface - Reference - Storage - Web Storage - data translation_of: Web/API/Storage ---

{{APIRef("Web Storage API")}}

Web Storage API の Storage インターフェイスは、特定のドメインのセッションストレージまたはローカルストレージへのアクセス機能を提供して、例えば保存されているデータアイテムを追加、変更、削除することができます。

ドメインのセッションストレージを操作したい場合は、{{domxref("Window.sessionStorage")}} メソッドを呼び出してください。ドメインのローカルストレージを操作したい場合は、{{domxref("Window.localStorage")}} を呼び出してください。

プロパティ

{{domxref("Storage.length")}} {{readonlyInline}}
Storage オブジェクトに保存されているデータアイテムの数を表す整数を返します。

メソッド

{{domxref("Storage.key()")}}
このメソッドは数値 n を渡すと、ストレージ内で n 番目のキーの名称を返します。
{{domxref("Storage.getItem()")}}
キーの名称を渡すと、キーに対する値を返します。
{{domxref("Storage.setItem()")}}
キーの名称と値を渡すと、ストレージにキーを追加する、または既存のキーに対する値を更新します。
{{domxref("Storage.removeItem()")}}
キーの名称を渡すと、ストレージからキーを削除します。
{{domxref("Storage.clear()")}}
このメソッドを呼び出すと、ストレージからすべてのキーを消去します。

ここでは、localStorage を呼び出して Storage オブジェクトにアクセスしています。始めに !localStorage.getItem('bgcolor') というコードを使用して、ローカルストレージにデータアイテムが含まれているかを確認します。含まれている場合は、{{domxref("Storage.getItem()")}} を使用してデータアイテムを取得して、さらにそのデータを使用してページのスタイルを更新する setStyles() 関数を実行します。含まれていない場合は populateStorage() 関数を実行します。こちらは {{domxref("Storage.setItem()")}} を使用してアイテムの値を設定してから、setStyles() を実行します。

if(!localStorage.getItem('bgcolor')) {
  populateStorage();
}
setStyles();

function populateStorage() {
  localStorage.setItem('bgcolor', document.getElementById('bgcolor').value);
  localStorage.setItem('font', document.getElementById('font').value);
  localStorage.setItem('image', document.getElementById('image').value);
}

function setStyles() {
  var currentColor = localStorage.getItem('bgcolor');
  var currentFont = localStorage.getItem('font');
  var currentImage = localStorage.getItem('image');

  document.getElementById('bgcolor').value = currentColor;
  document.getElementById('font').value = currentFont;
  document.getElementById('image').value = currentImage;

  htmlElem.style.backgroundColor = '#' + currentColor;
  pElem.style.fontFamily = currentFont;
  imgElem.setAttribute('src', currentImage);
}

注意: 完全に動作する例として実行する様子を見るために、Web Storage Demo をご覧ください。

仕様

仕様書 策定状況 コメント
{{SpecName('HTML WHATWG', 'webstorage.html#the-storage-interface', 'Storage')}} {{Spec2('HTML WHATWG')}}  

ブラウザ実装状況

{{Compat("api.Storage")}}

関連情報