Javascript QuoteExceedeError(DOM异常22):在匿名的Safari上已超过配额

Javascript QuoteExceedeError(DOM异常22):在匿名的Safari上已超过配额,javascript,safari,incognito-mode,Javascript,Safari,Incognito Mode,我收到quotaExceedeError(DOM异常22):配额已超过。在Safari上,当我处于匿名模式时 我也遇到过类似的问题,比如: 但是他们谈论setItem,我在其他地方得到这个错误 我在这一行得到了这个错误:localStorage['gallery.extensions']=JSON.stringify({})或localStorage['asdf']='asdfg' 我尝试组合并替换每一行,比如localStorage['asdf']='asdfg'成为localStorage.

我收到
quotaExceedeError(DOM异常22):配额已超过。
在Safari上,当我处于匿名模式时

我也遇到过类似的问题,比如:

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

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


我尝试组合并替换每一行,比如
localStorage['asdf']='asdfg'
成为
localStorage.setItem('asdf','asdfg')
和像
localStorage['asdf']
这样的每个访问都成为
localStorage.getItem('asdf')
,但这也没有帮助。

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


您得到的错误是故意的。

公认的答案是错误的。当localStorage.setItem内存不足并引发错误时,会发生这种情况。正如另一位评论员所写的,总是在try{}catch(){}中包装setItem

我在这一行上得到了这个错误
-这就像使用
设置项一样-所以同样的限制你链接到的问题中被接受的答案适用于你的情况。我从这里添加了代码:但它仍然在那一行抛出了这个错误。但是我需要在匿名下测试我的应用程序,因为我不想去清理我的数据每次我换东西@Jaromandaxo如果OSX上的开发者每次都需要清理缓存和数据,他们如何测试他们的应用程序?@kuhaku可能会有所帮助。就我个人而言,当在Chrome中打开开发者工具窗口进行开发时,每次页面刷新时,缓存都会自动清除。您还可以向网页中添加代码,以便在每次加载页面时强制删除本地存储中的项目,以确保在加载页面之前它是干净的。通过对Mobile Safari的远程调试,您还可以使用刚刚测试过的Command-Option-e:()清除缓存,我完全可以在匿名中使用本地存储。想想看,我总是可以的(不管怎么说,这个评论比上一个评论晚了3.5年)。我不知道
quotaExceedeError
是从哪里来的-它发生在我同事的机器上,没有发生在我的机器上。想想看。无论如何,我的课程是在
try
catch
中包装
localStorage.setItem
localStorage.getItem
方法。始终是良好的做法(如果本地存储对应用程序不重要)。self注意:也适用于其他可能导致应用程序不必要崩溃的非关键代码。当localStorage超过允许的内存限制(chrome/firefox上为10 MB)时,可以在匿名模式下使用。