QuotaExceededError(DOM例外22):隐身中的Safari已超出配额

时间:2017-02-26 11:30:26

标签: javascript safari incognito-mode

当我处于隐身模式时,我在Safari上获得secrets.urls

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

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

我在此行收到此错误:<tbody> <tr *ngFor="let eachRow of rowsInAMonth"> <td *ngFor="let eachDay of eachRow;" (click)="selectedDates(eachDay)" [style.color]="eachDay.color"> {{eachDay ? eachDay.date : ''}} </td> </tr> </tbody> QuotaExceededError (DOM Exception 22): The quota has been exceeded.

我尝试合并this answer并将localStorage['gallery.extensions'] = JSON.stringify({});之类的每一行替换为localStorage['asdf'] = 'asdfg';,并将localStorage['asdf'] = 'asdfg';之类的每次访问替换为localStorage.setItem('asdf', 'asdfg'),但这并不是localStorage['asdf']。帮助。

2 个答案:

答案 0 :(得分:8)

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

您获得的错误是设计上的。

答案 1 :(得分:8)

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