JavaScriptのlocalStorageをクリアしますか?


回答:


1371

これを使用してlocalStorageをクリアします。

localStorage.clear();

6
@BakedInhalfはまったくありません。多分あなたのアプリはそれをもう一度設定しますか?
destan

5
アプリの起動時にlocalStorage.clear()を呼び出しますが、ブラウザーを閉じたり、キャッシュをクリアしたりしても、データは残っています。これは、モデルの「インスタンス」プロパティを初期化時に乱数に設定し、特定のIDのインスタンスプロパティが常に同じであるためです。
シドニー2014年

11
@ digital-planeこれにより、特定のドメインまたはすべてのストレージからローカルストレージがクリアされますか?
クリスロン、2015

18
clear()あなたがいる特定のドメインからすべてのlocalStorageキーと値を削除します。CORSが原因で、JavaScriptは他のドメインからlocalStorage値を取得できません。
Fizzix 2017年

1
@BakedInhalfは正しいです。ページをハードリフレッシュするまでそのままです。localStorageをクリアしてすぐに埋めると、以前のコンテンツが復元され、新しいアイテムが追加されます。localStorageをクリアしてハードリフレッシュを実行すると、それは空になり、再び埋め始めることができます。
サイバー

198

ユーザーのローカルストレージから特定のアイテムまたは変数を削除する場合は、

localStorage.removeItem("name of localStorage variable you want to remove");

1
こんにちは、@ Ajeet特定のアイテムから削除したくない場合は、それを行う方法もありますか?たとえば、「removeItemNotIn(key)」、「定義されたキー以外のすべてを削除する」などです。前もって感謝します。
Me_developer

こんにちは、@ Shadow特定のアイテムを削除したくない場合は、それを行う方法もありますか?たとえば、「removeItemNotIn(key)」、「定義されたキー以外のすべてを削除する」などです。前もって感謝します。
Me_developer

私の問題の解決策を見つけました:-if(localStorage.getItem(particularKey)== null){localStorage.clear(); }しかし、より良い解決策がある場合は、私に知らせてください。ありがとう。
Me_developer

1
@learnerでは、特定のキー以外のすべてのキーを削除しますか?そのためには、次のようなことができます var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani

1
また可能:値の取得、値のクリアと再設定、より用途の広い。let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
マイケルB.


11

これは、例外を除いてすべてのlocalStorage項目を削除できるようにする関数です。この関数にはjQueryが必要です。要旨ダウンロードできます

あなたはこのようにそれを呼び出すことができます

let clearStorageExcept = function(exceptions) {
  let keys = [];
  exceptions = [].concat(exceptions); // prevent undefined

  // get storage keys
  $.each(localStorage, (key) => {
    keys.push(key);
  });

  // loop through keys
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    let deleteItem = true;

    // check if key excluded
    for (let j = 0; j < exceptions.length; j++) {
      let exception = exceptions[j];
      if (key == exception) {
        deleteItem = false;
      }
    }

    // delete key
    if (deleteItem) {
      localStorage.removeItem(key);
    }
  }
};

1
奇妙なことに、それundefinedsetItemandの有効なキーですgetItem
ebob

@ebobはい、変に見えるかもしれませんが、いや、実際にはそうではありません。localStorageは、キーが文字列に変換されるという点でオブジェクトと同様に機能します。たとえば、次のようにundefinedをキーとして使用すると、次のコードを実行するとわかるようにlocalStorage.setItem(undefined, 'example Txt!')、呼び出さ'undefined'れたキーの下に実際に保存されます。console.log(localStorage.getItem('undefined')) 出力しますexample Txt!
ジャックギフィン

8

ローカルストレージはグローバルにアタッチされていwindowます。Chrome devtoolsでlocalstorageをログに記録すると、次のAPIがあることがわかります。

ここに画像の説明を入力してください

次のAPIを使用してアイテムを削除できます。

  1. localStorage.clear():localstorage全体をクリアします
  2. localStorage.removeItem('myItem'):個々のアイテムを削除するには

4

まず最初に、localStorageが有効になっていることを確認する必要があります。私はこのようにすることをお勧めします:

var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};

はい、(場合によっては)localStorageがウィンドウオブジェクトのメンバーであるかどうかを確認するだけです。ただし、インデックス 'localStorage'にアクセスしようとした場合に例外をスローするiframeサンドボックスオプションがあります。したがって、ベストプラクティスの理由から、これはlocalStorageが有効になっているかどうかを確認する最良の方法です。次に、そのようにlocalStorageをクリアします。

if (localStorageEnabled) localStorage.clear();

たとえば、Webkitブラウザーでエラーが発生した後にlocalStorageをクリアすることができます。

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);

上記の例では、それがなければ関数がオブジェクトを通知せずに失敗させるのではなく、オブジェクトのコンテキストで関数が実行される.bind(window)ために必要です。これを示すために、以下の例を見てください。localStorage.clearwindowlocalStorage

window.onerror = localStorage.clear;

と同じです:

window.onerror = function(){
    localStorage.clear.call(window);
}

3

localStorageに保存したすべてのアイテムをクリアしたい場合は、

localStorage.clear();

これを使用して、保存されているすべてのキーをクリアします。

特定のキー/値のみをクリア/削除したい場合は、removeItem(key)を使用できます。

localStorage.removeItem('yourKey');

2
localStorage.clear();

または

window.localStorage.clear();

特定のアイテムをクリアする

window.localStorage.removeItem("item_name");

idで特定の値を削除するには:

var item_detail = JSON.parse(localStorage.getItem("key_name")) || [];           
            $.each(item_detail, function(index, obj){
                if (key_id == data('key')) {
                    item_detail.splice(index,1);
                    localStorage["key_name"] = JSON.stringify(item_detail);
                    return false;
                }
            });


0

これは、JavaScriptを使用してブラウザに保存されているlocalstorageをクリアする簡単なコードです

    <script type="text/javascript">

if(localStorage) { // Check if the localStorage object exists

    localStorage.clear()  //clears the localstorage

} else {

    alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}

</script>

localstorageが空かどうかを確認するには、次のコードを使用します。

<script type="text/javascript">

// Check if the localStorage object exists
if(localStorage) {

    alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
    alert("Sorry, i've been deleted ."); //an alert
}

</script>

nullが返された場合、localstorageはクリアされます。


0

このコードでは、削除したくないキーの文字列のリストを指定し、ローカルストレージ内のすべてのキーからそれらをフィルタリングしてから、他のキーを削除します。

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.