Safari無痕模式是不能只使用localStorage存儲數據要用Cookie作補丁

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.結論:
  只有iOS九、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 | 傳送門html

參考二:原文做者:Hi娜娜 | 來源:  博客園 | 傳送門瀏覽器

相關文章
相關標籤/搜索