100 votes

Vérifier si localStorage est disponible

Je sais qu'il y a eu beaucoup de questions sur le fait de vérifier pour localStorage mais que se passe-t-il si quelqu'un le désactive manuellement dans son navigateur ? Voici le code que j'utilise pour vérifier :

localStorage.setItem('mod', 'mod');
if (localStorage.getItem('mod') != null){
  alert ('yes');
  localStorage.removeItem('mod');
} else {
  alert ('no');
}

Une fonction simple et qui fonctionne. Mais si j'entre dans les paramètres de Chrome et que je choisis l'option "Ne pas sauvegarder les données" (je ne me souviens pas exactement comment elle s'appelle), lorsque j'essaie d'exécuter cette fonction, je n'obtiens rien d'autre que Uncaught Error: SecurityError: DOM Exception 18 . Existe-t-il un moyen de vérifier si la personne l'a complètement désactivé ?

MISE À JOUR : C'est la deuxième fonction que j'ai essayée et je n'obtiens toujours pas de réponse (alerte).

try {
  localStorage.setItem('name', 'Hello World!');
} catch (e) {
  if (e == QUOTA_EXCEEDED_ERR) {
   alert('Quota exceeded!');
  }
}

0voto

Vous pouvez essayer cette méthode Validez à tout moment le contenu de la boutique locale

const name = localStorage.getItem('name');
if(name){
    console.log('Exists');
}else
{
    console.log('Not found');
}

-1voto

Ron Royston Points 5179

Modifier la réponse de Joe pour ajouter un getter la rend plus facile à utiliser. Avec la réponse ci-dessous, vous dites simplement : if(ls)...

Object.defineProperty(this, "ls", {
  get: function () { 
    var test = 'test';
    try {
      localStorage.setItem(test, test);
      localStorage.removeItem(test);
      return true;
    } catch(e) {
      return false;
    }
  }
});

-1voto

Ruslan Korkin Points 306

Il est préférable de vérifier la disponibilité de localStorage en collaboration avec cookies car si cookie est activé, le navigateur pourrait détecter que localStorage est disponible et type comme object mais n'offre aucune possibilité de travailler avec elle. Vous utilisez la fonction suivante pour détecter les deux localStorage y cookies :

const isLocalStorage = () => {
  try {
    if (typeof localStorage === 'object' && navigator.cookieEnabled) return true
    else return false
  } catch (e) {
    return false
  }
}

-2voto

Brady Points 185

Voici une vérification facile :

if(typeof localStorage === 'undefined'){

-3voto

Lucky W Points 50

Utilisez-le pour vérifier si localStorage est défini ou non. Il vous aide à obtenir l'état de Localstorage.

    if( window.localStorage.fullName !== undefined){

           //action
   }else{
          }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X