safari 無痕瀏覽情況測試(部分手機)
1.測試機型
iPhone7 Plus 版本 11.3
iPhone6 Plus 版本 11.3.1
iPhone6 版本 10.2.1
iPhoneSE 版本 9
oppe r9
2.測試瀏覽器
Sarfari UC 自帶瀏覽器
3.結果:
iOS9,iOS10 Sarfari
setItem 報錯
getItem null
iOS 11 Sarfari
setItem 可set
getItem 可get
iOS 11 UC
setItem 不可set,但不報錯
getItem null
安卓機
可set,可get
4.結論:
只有iOS9、10還存在無痕瀏覽下localStorage無法使用的情況,iOS11中Sarfari已支持存取localStorage,但是iOS11中UC不支持存localStorage。
所以,在開發過程中使用loaclStorage就需要對以上情況進行兼容,避免 js 報錯后影響整個頁面的功能。
--------------騷氣分割線----------------
Safari無痕模式是不能使用localStorage的,要使用cookie做補丁
可以利用這個特性判斷用戶是否開啟無痕模式,並提醒用戶關閉無痕模式
if(typeof localStorage === 'object'){ try{ localStorage.setItem('localStorage', 1); localStorage.removeItem('localStorage'); }catch(e){ alert("請關閉無痕模式!"); }; };
--------------騷氣分割線----------------
補: 判斷瀏覽器支持 localStorage
//判斷瀏覽是否支持localStorage function isLocalStorageSupport{ try { var isSupport = ‘localStorage‘ in window && window[‘localStorage‘] !== null; if (isSupport) { localStorage.setItem("local_storage_test", "1"); localStorage.removeItem("local_storage_test"); } return isSupport; } catch (e) { return false; } }
參考一:原文作者:金大光 | 來源:CSDN | 傳送門
參考二:原文作者:Hi娜娜 | 來源: 博客園 | 傳送門