当我尝试在 IOS Safari 中使用
localStorage.setItem("");
保存任何内容时,出现此错误 -
SecurityError (DOM Exception 18): 操作不安全
这是错误的屏幕截图...
任何想法如何解决这个问题? 谢谢。
找到答案。 阻止 Cookies 在用户的 Safari 设置中打开。
不仅是Safari,还有隐私浏览模式下的Firefox。 Chrome 不会在隐身模式下阻止 localStorage,但它会在每次会话时被重置(恕我直言,这是一个更好的选择)。 在任何一种情况下,您都不应该直接使用 localStorage,而是制作一个脚本,如果它可用,则使用它,如果不可用,则使用 sessionStorage。 即
var backupStorage = {};
var storageMode = 'localStorage';
try {
localStorage.length;
} catch(e) {
try {
sessionStorage.length;
storageMode = 'sessionStorage';
} catch(e) {
storageMode = 'backupStorage';
}
}
function setLocalStorage(key, value) {
switch(storageMode) {
case 'localStorage':
localStorage.setItem(key, value);
break;
case 'sessionStorage':
sessionStorage.setItem(key, value);
break;
case 'backupStorage':
backupStorage[key] = value;
break;
}
}
function getLocalStorage(key) {
switch(storageMode) {
case 'localStorage':
return localStorage.getItem(key);
case 'sessionStorage':
return sessionStorage.getItem(key);
case 'backupStorage':
return backupStorage[key];
}
}