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

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

The Storage interface of the Web Storage API provides access to a particular domain's session or local storage. It allows, for example, the addition, modification, or deletion of stored data items.

To manipulate, for instance, the session storage for a domain, a call to the {{domxref("Window.sessionStorage")}} is made; whereas for local storage the call is made to {{domxref("Window.localStorage")}}.

Properties

{{domxref("Storage.length")}} {{readonlyInline}}
Returns an integer representing the number of data items stored in the Storage object.

Methods

{{domxref("Storage.key()")}}
When passed a number n, this method will return the name of the nth key in the storage.
{{domxref("Storage.getItem()")}}
When passed a key name, will return that key's value.
{{domxref("Storage.setItem()")}}
When passed a key name and value, will add that key to the storage, or update that key's value if it already exists.
{{domxref("Storage.removeItem()")}}
When passed a key name, will remove that key from the storage.
{{domxref("Storage.clear()")}}
When invoked, will empty all keys out of the storage.

Examples

Here we access a Storage object by calling localStorage. We first test whether the local storage contains data items using !localStorage.getItem('bgcolor'). If it does, we run a function called setStyles() that grabs the data items using {{domxref("Storage.getItem()")}} and uses those values to update page styles. If it doesn't, we run another function, populateStorage(), which uses {{domxref("Storage.setItem()")}} to set the item values, then runs 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);
}

Note: To see this running as a complete working example, see our Web Storage Demo.

Specifications

Specification Status Comment
{{SpecName('HTML WHATWG', 'webstorage.html#the-storage-interface', 'Storage')}} {{Spec2('HTML WHATWG')}}  

Browser compatibility

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

See also