web-dev-qa-db-fra.com

Sur un navigateur, sessionStorage dans la navigation privée de Safari ne fonctionne pas de la même manière que le mode incognito de Chrome et la fenêtre privée de Firefox?

Il semble que pour sessionStorage, cela fonctionne différemment entre le mode Incognito de Chrome, la navigation privée de Safari et la fenêtre privée de Firefox? Je peux trouver quelque chose sur http://www.webdirections.org/blog/webstorage-persistent-client-client-side-data-storage/ mais cela ne dit pas que la navigation privée de Safari lève une exception.

Voici comment j'ai ouvert la "navigation privée":

  1. Sur Safari sur Mac, cliquez sur "Safari -> Navigation privée" dans la barre de menus.
  2. Sous Chrome, utilisez "Fichier -> Nouvelle fenêtre de navigation privée".
  3. Sous Firefox, utilisez "Fichier -> Nouvelle fenêtre privée"

et sur Safari, sessionStorage ne fonctionne pas, et si je fais ce qui suit dans la console:

> sessionStorage["foo"] = 123.4
Error: QUOTA_EXCEEDED_ERR: DOM Exception 22

> sessionStorage["foo"] 
undefined

mais sur Chrome ou Firefox, sessionStorage fonctionne normalement (en tant que navigation non privée). Ce qui précède est-il exact en ce qui concerne sessionStorage?

19

Votre évaluation est pratiquement exacte:

  • Safari utilisera simplement un quota de 0 en mode privé pour que toutes les tentatives de définition d'une valeur échouent. C'est un peu OK selon la spec , car la spécification n'impose pas d'espace minimum.
  • Chrome et Firefox vous autorisent toujours à utiliser le stockage. Toutefois, le stockage privé est indépendant des non-privés. En d'autres termes, définir un élément en mode privé ne sera pas reflété en mode non-privé (important pour localStorage uniquement).

Veuillez noter que les autres navigateurs sont également libres de lancer des exceptions QuotaExceededError à tout moment, si vous dépassez le quota.

27
nmaier

La dernière version de Safari (version 12.0) a déjà accès à sessionStorage sans problème en mode de navigation privée .  enter image description here

0
Ezeewei