显然,这是设计使然。当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; }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)