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-弹窗组件 ;
能力有限,大神勿喷