前端 | 说说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.
}

你可能感兴趣的:(前端 | 说说Safari Private模式)