我在 iPhone 的 safari 上遇到这个错误,在执行 localStorage.setItem('user',
some string here)
时:
Error: The quota has been exceeded.
setItem@[native code]
不是私有(private)模式!还有哪些情况会导致 localStorage 不工作?
最佳答案
我创建了这个类来帮助绕过隐私浏览。但是,当您刷新浏览器时,存储空间将被消耗殆尽。
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;
关于javascript - Safari IOS 10 上的错误 : The quota has been exceeded.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40873498/