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.結論:
  只有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娜娜 | 來源:  博客園 | 傳送門

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM