踩坑記錄——iphone上safari開啓隱身模式時localStorage變爲只讀

申請完sf的博客這麼久一直都沒動手寫點東西,如今來記錄一個前幾天項目裏踩到的一個坑。ios

場景瀏覽器

項目中某部分代碼有用到localStorage儲存數據,該部分代碼在線上一直正常跑着。
直到前幾天忽然有用戶反饋有個頁面在他iPad safari上顯示不正常,遂用iPad一整調試後找到緣由。調試

緣由code

ios上safari開啓隱身模式時,localStorage沒法寫入新的內容,而且會拋出異常致使js沒法正常執行,最終頁面沒法正常加載。博客

解決io

使用try catch包裹對localStorage寫入的代碼:safari

try {
    window.localStorage.foobar = "foobar";
} catch(_) {
    alert("本地儲存寫入錯誤,若爲safari瀏覽器請關閉隱身模式瀏覽。");
}
相關文章
相關標籤/搜索