Я создал этот класс, чтобы помочь обойти частный просмотр. Однако при обновлении браузера хранилище будет удалено.
const data = {};
let hasLocalStorage = false;
if (localStorage) {
try {
const x = 'storageTest';
localStorage.setItem(x, x);
localStorage.removeItem(x);
hasLocalStorage = true;
} catch (e) {
hasLocalStorage = false;
}
}
class StorageUtilities {
setItem(key, value) {
if (hasLocalStorage) {
localStorage.setItem(key, value);
} else {
data[key] = value;
}
}
getItem(key) {
if (hasLocalStorage) {
return localStorage.getItem(key);
}
return data[key];
}
removeItem(key) {
if (hasLocalStorage) {
localStorage.removeItem(key);
} else {
data[key] = null;
}
}
}
const storageUtilities = new StorageUtilities();
export default storageUtilities;
Возможный дубликат [html5 LocalStorage ошибка с Safari: "QUOTA \ _EXCEEDED \ _ERR: DOM Exception 22:. Была сделана попытка добавить что-то к хранилищу, что превысило квоту"] (HTTP: // StackOverflow. com/questions/14555347/html5-localstorage-error-with-safari-quota -выше-err-dom-exception-22-an) –