前端 | 說說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.
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容