J'ai cherché pendant plusieurs heures, mais rien n'a résolu mon problème: impossible de vérifier si une clé existe dans le localStorage
.Vérifier si l'élément localStorage existe ne fonctionne pas
Dans mon application de chat, Une fois que l'utilisateur ouvre un nouvel onglet, je veux vérifier s'il est déjà utilisateur enregistré, je le fais en utilisant la variable localStorage de la manière suivante:
window.addEventListener('load', function() {
var s=localStorage.getItem("localStor");
if (s === null){
console.log("is null"); //does not enter here
}else{
console.log(s); // prints [object *O*bject]
console.log(JSON.parse(s).name); //getting an error (see below)
}
}, false);
Lors de l'analyse que je reçois l'erreur:
Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (
<anonymous>
)
le premier endroit où je mis localStor
objet localStorage
est qu'après l'enregistrement et il est dans une fonction qui est appelée uniquement lorsque vous cliquez sur un bouton élément HTML
. Mais logiquement, il ne devrait pas entrer dans le else
de la première place.
Une idée de pourquoi cela ne fonctionne pas? toute aide est appréciée.
valider votre JSON et écrire tout cela dans 'try..watch' – vsync
@vsync rien n'a changé, j'ai essayé d'alerter l'erreur mais rien ne s'est passé – user8244016
Vous le faites correctement, comme mentionné ici: https: // stackoverflow. com/questions/3262605/comment-vérifier-si-un-élément-de-stockage-est- Je suppose qu'il y a quelque chose à propos de votre 'JSON.parse()' dans lequel la propriété 'name' n'est pas valide ... ou quelque chose comme ça. Essayez simplement de consigner le résultat de 'JSON.parse (s)' pour voir à quoi ressemble votre valeur. – Marc