2017-11-21 9 views
1

ローカルストレージ内にトークンという名前の変数を持つアプリケーションがあります。localstorageのコンソールスクリプトの問題

私はコンソールをクリアするコードを書いて、警告を表示したい();前述の変数は です。

これは私がこれまで

clear(); if(localStorage){alert(localStorage.getItem("token"));} 

を行うために管理している。しかし、私はのlocalStorageが定義されていないエラーを取得しておくものです。より正確には:

Uncaught ReferenceError: localStorage is not defined at <anonymous>:1:12

アイデアをお持ちですか?

+1

使用しているブラウザがlocalStorageをサポートしていますか? localStorageが定義されていないと、ifが失敗します。 'typeof localStorage!== 'undefined'または' window.localStorage'はエラーなしで定義されているかどうかを検出します。 –

+0

あなたのブラウザが 'alert(typeof Storage);を使用して' localStorage'をサポートしているかどうかを確認してください。 –

答えて

1

私はコードの完全なコンテキストを持っていませんが、localStorageが定義されていない場合、値が定義されているかどうかを確認することはできません。 たとえば、任意の変数に該当する場合、変数blaを定義しないと、次のコードで同じエラーがスローされます。 if(bla)console.log(bla);

代わりにif (typeof localStorage !== "undefined")を使用してください。

また、ブラウザが必ずしもlocalStorageをサポートしているわけではありません。その前に確認する必要があります。また、try-catchを使うことは、localStorageを使って作業するときには良い考えです。

+0

@Xufoxあなたが正しいと私の悪いです –

+0

if(typeof(localStorage)!== "undefined"){alert(localStorage .getItem( "token"));} このコードは厳しいですが、私が望む結果を得られないようです。まだどんなアイデア?また、私はもう宣言されていないエラーを取得しません/ –

関連する問題