Safari无痕浏览影响localStorage存储问题

最近项目中遇到一个问题,有一个登录页,点击登录后,IOS Safari浏览器上出现问题;

看到这个BUG的时候感觉很郁闷,因为自己测了很多次,而且自己封装的本地存储在微信项目没有出现问题。不管怎样,既然问题出现了,还是要解决的吗;

于是就各种调试。首先把问题定位在请求参数上、是否有遗漏的返回状态未处理;测试之后排除了这种因素;

最后把问题定位在本地存储上,但是其他项目都是这样的存的,自己测试的时候也没有问题。而且公司测试的IOS机也没问题。

Storage.set("user",data);
Storage是封装的用于存储的库;

我把两个手机都拿来看了一下,发现一个在无痕浏览模式,在该模式下是无法使用localStorage和sessionStorage,坑啊,没办法,只能做友好提示,让用户切换浏览模式啦,最后代码如下:

try {
     Storage.set("user",data);
     if (Url.queryString("rurl")!=''){
          window.location.href=Url.queryString("rurl");
     }else{
          window.location.href=apiconfig.baseUrl+"index/index.html";
     };
} catch (e) {
     popLayer.alert({
          text:"您处于无痕浏览模式,无法为您跳转,请调整浏览器浏览模式!",
          model:true,
          yes:function(){
          popLayer.destroy();
          }
    });
 }

其中popLayer是自己写的一个模拟弹窗,可参考javascript-弹窗组件 ;

能力有限,大神勿喷

 

原文地址:https://www.cnblogs.com/oygg/p/5690976.html