web-dev-qa-db-ja.com

HTML5 - localStorageはすべてのデータを削除して消去する

localStorageに設定したすべてのデータを消去する必要があります。これにより、ユーザーが自分のアカウントを削除したときにlocalStoragenullに完全にリセットすることを意味します。

どうすれば簡単な関数でそれができますか?

私はこれを試しました:

function clearLocalStorage(){
    return localStorage= null;
}

しかし、それは期待通りには機能しません。

138
itsme

localStorage.clear();

うまくいくはずです。

375
Lyn Headley

使用するよりもローカルストレージからすべての値を削除または消去したい場合

localStorage.clear();

そして、あなたがローカルストレージから特定のアイテムを取り除きたいならば、以下のコードを使う

localStorage.removeItem(key);
80
Talha

Firefoxでは、windowオブジェクトからアクセスしたときにのみ機能しました。

例...

window.onload = function()
{
 window.localStorage.clear();
}
9
John

.oneを使用すると、これは一度だけ行われ、繰り返し行われることはありません。

$(window).one("focus", function() {
    localStorage.clear();
});

読みやすくするために、無理をしない限り、document.readyイベントリスナーを複数回配置してもかまいません(他のイベントを複数回実行する必要がある場合)。

.oneは、Webページを最初に開いたとき、またはモバイルアプリケーションを初めてインストールしたときに1回だけローカルストレージを消去する場合に特に便利です。

   // Fired once when document is ready
   $(document).one('ready', function () {
       localStorage.clear();
   });

このようなことはするべきです:

function cleanLocalStorage() {
    for(key in localStorage) {
        delete localStorage[key];
    }
}

ただし、これを使用する場合は注意してください。他のデータがlocalStorageに格納されている可能性があるため、これを削除した場合は、おそらくかなり目立ってしまうでしょう。 a)ユーザーのデータをlocalStorageに格納しない、またはb)ユーザーのアカウント情報を1つの変数に格納し、それをクリアしてlocalStorage内のすべてのキーを削除することをお勧めします。


編集:リンが指摘したように、あなたはlocalStorage.clear()を使うのがよいでしょう。しかし、私のこれまでの論点はまだ立っています。

4