跳转到主要内容

Window: storage event

{{APIRef("HTML DOM")}}

The storage event of the {{domxref("Window")}} interface fires when another document that shares the same storage area (either {{domxref("Window/localStorage", "localStorage")}} or {{domxref("Window/sessionStorage", "sessionStorage")}}) as the current window updates that storage area. The event is not fired on the window that made the change.

  • For localStorage, the event is fired in all other {{Glossary("browsing context", "browsing contexts")}} that are in the same origin as the initiating document. This includes other tabs with the same origin.
  • For sessionStorage, the event is fired in all other {{Glossary("browsing context", "browsing contexts")}} that are in the same origin and the same top-level browsing context as the initiating document. This only includes embedded iframes, if any, in the same tab, and not other tabs.

This event is not cancelable and does not bubble.

Syntax

Use the event name in {{domxref("EventTarget/addEventListener", "addEventListener()")}}:

addEventListener("storage", (event) => { })

Alternatively, assign to the event handler property of the interface:

onstorage = (event) => { }

Event type

A {{domxref("StorageEvent")}}. Inherits from {{domxref("Event")}}.

{{InheritanceDiagram("StorageEvent")}}

Event handler aliases

In addition to the Window interface, the event handler property onstorage is also available on the following targets:

  • {{domxref("HTMLBodyElement")}}
  • {{domxref("HTMLFrameSetElement")}}
  • {{domxref("SVGSVGElement")}}

Examples

Log the sampleList item to the console when the storage event fires:

window.addEventListener("storage", () => {
  // When local storage changes, dump the list to
  // the console.
  console.log(JSON.parse(window.localStorage.getItem("sampleList")));
});

The same action can be achieved using the onstorage event handler property (but note that this replaces other event listeners added using onstorage, if any):

window.onstorage = () => {
  // When local storage changes, dump the list to
  // the console.
  console.log(JSON.parse(window.localStorage.getItem("sampleList")));
};

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also