Window: storage イベント
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年4月以降、すべてのブラウザーで利用可能です。
storage イベントは、保存領域 (localStorage) が変更されたときに発生します。詳しくはウェブストレージ API をご覧ください。
メモ: これは変更を行ったのと同じページでは動作しません。本来、これは同じ保存領域を使用している同じドメインの他のページが更新を同期するための仕組みです。他のドメインのページは、同じ保存領域オブジェクトにはアクセスできません。
構文
このイベント名を addEventListener() などのメソッドで使うか、イベントハンドラープロパティを設定するかしてください。
addEventListener("storage", (event) => {});
onstorage = (event) => {};
イベント型
StorageEvent です。 Event を継承しています。
イベントプロパティ
key読取専用-
変更されたキーを表す文字列を返します。 変更が発生したのがこのストレージの
clear()メソッドによるものであれば、key属性はnullになります。 newValue読取専用-
keyの新しい値を文字列で返します。 このストレージのclear()メソッドが呼び出されたり、そのkeyがストレージから削除されたりして変更が行われた場合は、この値はnullになります。 oldValue読取専用-
keyの元の値を文字列で返します。 そのkeyが新しく追加されたものであるため、以前の値が存在しない場合は、この値はnullになります。 storageArea読取専用-
変更が行われたストレージを表す
Storageオブジェクトを返します。 url読取専用-
keyを変更した文書の URL を文字列で返します。
イベントハンドラーの別名
Window インターフェイスに加え、イベントハンドラープロパティ onstorage は以下のターゲットでも利用可能です。
例
storage イベントが発生した時、項目 sampleList をコンソールに記録します。
window.addEventListener("storage", () => {
// ローカルストレージが変更された時、
// リストをコンソールに書き出す。
console.log(JSON.parse(window.localStorage.getItem("sampleList")));
});
onstorage イベントハンドラープロパティを用いても、同じことができます。
window.onstorage = () => {
// ローカルストレージが変更された時、
// リストをコンソールに書き出す。
console.log(JSON.parse(window.localStorage.getItem("sampleList")));
};
仕様書
| 仕様書 |
|---|
| HTML> # event-storage> |
| HTML> # handler-window-onstorage> |