QuotaExceededError(DOM异常22):在隐身的Safari上已超过配额

当我处于隐身模式时,我在 Safari 上获得QuotaExceededError (DOM Exception 22):The quota has been exceeded.。

当我处于隐身模式时,我在 Safari 上获得QuotaExceededError (DOM Exception 22): The quota has been exceeded.

我经历了类似的问题:QuotaExceededError: Dom exception 22: An attempt was made to add something to storage that exceeded the quota

但是他们谈论 setItem,我在别的地方得到这个错误。

我在这一行得到这个错误:localStorage['gallery.extensions'] = JSON.stringify({});localStorage['asdf'] = 'asdfg';

我尝试组合this answer并将每一行localStorage['asdf'] = 'asdfg';替换为localStorage.setItem('asdf', 'asdfg'),并将每个访问localStorage['asdf']替换为localStorage.getItem('asdf'),但这也没有帮助。

29

您不能在隐身模式下使用本地存储。通过将您的 setItem 或 getItem 调用包装在 try / catch 中只是帮助您的代码处理本地存储的失败使用,然后提醒用户他们需要在非私有模式下使用您的应用程序。

你得到的错误是设计。

编辑 2021:您现在可以在隐身模式下使用 localStorage。当您用完每个应用程序 / 域允许的存储空间限制时,也会发生此错误。在编写时大多数浏览器限制为 10mb。

23

接受的答案是不正确的。当 localStorage.setItem 内存不足并抛出错误时会发生这种情况。正如另一个评论者所写,总是将 setItem 包装在 try {} catch () {} 中

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(196)
Excel日期筛选器不分组日期
上一篇
谷歌应用程序引擎中的缓存控制(app engine cache control)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(81条)