173

なぜこれが機能しないのですか?

if(typeof(localStorage.getItem("username"))=='undefined'){
    alert('no');
};

目標は、まだログインしていない場合に、ユーザーをインデックス ページからログイン ページにリダイレクトすることです。ここでは、localStorage.getItem("username"))変数は今のところ定義されていません。

iOS phonegap アプリ用です。

4

4 に答える 4

64

この方法は私のために働いた:

if ("username" in localStorage) {
    alert('yes');
} else {
    alert('no');
}
于 2014-02-20T10:51:24.237 に答える
32

アップデート:

if (localStorage.hasOwnProperty("username")) {
    //
}

値が空の文字列、null、またはその他の偽の値であると予想されない場合に関連する別の方法:

if (localStorage["username"]) {
    //
}
于 2014-08-22T04:24:28.260 に答える
17

MDNのドキュメントには、getItemメソッドの実装方法が示されています。

Object.defineProperty(oStorage, "getItem", {
      value: function (sKey) { return sKey ? this[sKey] : null; },
      writable: false,
      configurable: false,
      enumerable: false
    });

値が設定されていない場合は、 を返しますnull。かどうかをテストしていますundefined。代わりにあるかどうかを確認しますnull

if(localStorage.getItem("username") === null){
于 2013-04-15T08:35:24.340 に答える