如何解决Safari的html5 localStorage错误:“ QUOTA_EXCEEDED_ERR:DOM异常22:试图向存储中添加超出配额的内容”
显然,这是设计使然。当Safari(OS X或iOS)处于私有浏览模式时,它似乎localStorage
可用,但是尝试调用setItem
会引发异常。
store.js line 73
"QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota."
发生的事情是该窗口对象仍在localStorage
全局命名空间中公开,但是当您调用时setItem
,将抛出此异常。的所有呼叫都将removeItem
被忽略。
我相信最简单的解决方法(尽管我尚未测试过此跨浏览器)将更改功能isLocalStorageNameSupported()
以测试您是否还可以设置一些值。
function isLocalStorageNameSupported()
{
var testKey = 'test', storage = window.sessionStorage;
try
{
storage.setItem(testKey, '1');
storage.removeItem(testKey);
return localStorageName in win && win[localStorageName];
}
catch (error)
{
return false;
}
}
解决方法
我的webapp在ios Safari私人浏览中出现javascript错误:
JavaScript:错误
未定义
QUOTA_EXCEEDED_ERR:DOM异常22:试图向存储中添加内容…
我的代码:
localStorage.setItem('test',1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。