2012-11-16 3 views
2

Comment vérifier si une valeur de stockage local est vide? par exemple ..javascript storage local

localStorage.setItem('favoriteflavor',''); 

var taste = localStorage.getItem('favoriteflavor'); 

if(taste == null){ 
    console.log('favoriteflavor is null'); 
} 
else { 
    console.log('favoriteflavor is NOT null'); 
} 

Ceci est le plus logique mais je n'obtiens aucun résultat. J'ai aussi essayé ..

if(localStorage['favoriteflavor'] == 'null'){ 
    console.log('favoriteflavor is null'); 
} 

http://jsfiddle.net/AwsyE/6/

+0

Vous définissez la valeur en tant que '' ''', donc comparez-la. Utilisez 'if (taste == '')' – Ian

+1

'null' et la chaîne vide '''' sont différents, donc ils ne sont pas comparables dans la façon dont vous essayez. – Ian

+0

Il peut être intéressant de noter que 'getItem' ** fait ** retourner' null' mais seulement dans l'instance ** la clé n'existe pas **. Si la clé existe, elle renverra '''' ou une chaîne. Pour supprimer une paire clé/val, vous devez utiliser 'removeItem'. [MDN ref] (https://developer.mozilla.org/en-US/docs/DOM/Storage#Storage) ne semble pas répertorier les méthodes en détail. –

Répondre

4

Si vous définissez favoriteflavor à une chaîne vide, alors vous devriez vérifier pour une chaîne vide pas quelque chose d'autre

localStorage.setItem('favoriteflavor',''); 
var taste = localStorage.getItem('favoriteflavor'); 
if(taste == ''){ 
    console.log('favoriteflavor is empty');  
} 
else{ 
    console.log('favoriteflavor is NOT empty'); 
} 

Alternativement, si vous supprimaient favoriteflavor alors vous pouvez le vérifier contre null

localStorage.setItem('favoriteflavor','chocolate'); 
delete localStorage['favoriteflavor']; 
// or use localStorage.removeItem('favoriteflavor'); 

var taste = localStorage.getItem('favoriteflavor'); 

if(taste == null){ 

    console.log('favoriteflavor is null'); 

} 
else 
{ 
    console.log('favoriteflavor is NOT null'); 
} 

http://jsfiddle.net/mowglisanu/AwsyE/10/

0

Vous configurez votre article comme '' ici:

localStorage.setItem('favoritefla',''); 

et test si la sortie est == null

if(localStorage['favoriteflavor'] == 'null' 

Quand il est égal à égal à '' puisque vous vous déjà défini cette valeur précédemment.

Je crois que vous essayez de savoir si le navigateur a une capacité localStorage que vous pouvez faire en testant si vous pouvez insérer et supprimer des éléments de cet objet, comme ce qui suit:

var hasStorage = (function() { 
    try { 
    localStorage.setItem(mod, mod); 
    localStorage.removeItem(mod); 
    return true; 
    } catch(e) { 
    return false; 
    } 
}()); 

La fonction retourne au-dessus true si le broswer a la capacité localStorage. J'espère que cela a aidé, acclame