前端 | 说说Safari Private模式

作者: 重学前端MDN | 来源:发表于2018-01-07 20:10 被阅读366次

    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模式

        本文链接:https://www.haomeiwen.com/subject/zsdmnxtx.html