前端 | 说说Safari Private模式

Safari隐身模式与正常模式的区别是浏览器不会保存历史记录,没有页面缓存,所有本地数据也是临时的,页面关闭后无法还原。

如果网页代码中使用了诸如localStorage的本地存储:
在桌面版Safari浏览器能生效,但是只针对本次访问;在手机端Safari浏览器只能读localStorage里的数据,不修改数据,当使用localStorage.setItem进行保存的时候就会报QUOTA_EXCEEDED_ERR错误。

问题来了,当localStorage满了,再进行写的操作也会报QUOTA_EXCEEDED_ERR错误,无法通过能否window.localStorage.setItem()来判断是隐身模式还是内存满了

//隐身模式下和localStorage满了都会报同样的错误
try {
  window.localStorage.setItem('test', 'test')
} catch (e)  {
  console.log(e) //QuotaExceddedError(DOM Exception 22):The quota has been exceeded.
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容