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娜娜 | 来源:  博客园 | 传送门

Safari无痕模式是不能只使用localStorage存储数据要用Cookie做补丁的更多相关文章

  1. Safari无痕模式下,storage被禁用问题

    前言 Safari开启无痕模式后,localStorage和sessionStorage为空,对其进行set操作也会报错,也就是说这种情况下,storage是被禁止使用了.接下来说一下解决方法. 解决 ...

  2. 无痕模式下 this.StorageManager.setItem) 本地存储丢失

    在无痕模式下,存的this.StorageManager.setItem("recharge", JSON.stringify(recharge))本地存储会丢失,所以我们改成使用 ...

  3. localStorage存储数据位置

    chrome浏览器:C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default\Local Storage 中,虽然后缀名是.loc ...

  4. ios中safari无痕浏览模式下,localStorage的支持情况

    前言 前阶段,测试提了个bug,在苹果手机中无痕模式下,搜索按钮不好使,无法跳页,同时搜索历史也没有展示(用户搜索历史时使用localStorage存储). 正文 iOS上Sarfari在无痕模式下, ...

  5. Safari Private 模式下 localStorage 的问题

    现如今好多浏览器都有「隐身模式」,Safari 管这叫「Private Browing」,国内各种牌子的套壳浏览器叫「无痕浏览」.私以为从命名上来说,倒是国内更中文一些. 这种模式下浏览网页踏雪无痕, ...

  6. 一次由于开启 Safari 无痕浏览 引发的艰难“捉虫”事件

    事件回顾 做了一个移动端的页面,测试的时候出现了一个诡异的 bug.别的浏览器都好好的,就 ios 的 Safari 浏览器页面停止了渲染,似乎是有一段 js 文件没有载入.但是奇怪的是,同一型号的 ...

  7. localstorage存储对象

    之前在客户端存储数据一直用的是cookie,由于有大小等限制,随着html5时代的到来,现在大多数用的是localstorage存储数据: 例如: localStorage.setItem(" ...

  8. 在IOS手机safari浏览器的无痕模式下,localStorage不起作用

    无痕模式是黑色风格,正常模式是白色风格.在无痕模式中,使用localStorage.setItem()会报错,但在window对象下确实有localStorage.setItem方法. if (typ ...

  9. 苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转

    昨天下午,测试提了一个bug,问题是:在苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转. 思前想后找了半天没思路,后来经过同事的点拨,说可能是禁用了cookie之类的,反正我也没思路就顺 ...

随机推荐

  1. nginx springboot配置

    1.下载安装nginx 2.nginx.conf文件修改参数 上方是代理后的端口,代理的server.下方是需要代理的路径 3.windows 下操作指令 启动 直接点击Nginx目录下的nginx. ...

  2. 为什么天线的回波损耗以-10dB大小来衡量?

    传送门:http://www.eeworld.com.cn/Test_and_measurement/2014/0610/article_9152.html i:对于2端口无损耗网络,可以根据S11的 ...

  3. python+appium模拟手机物理按键操作

    一句代码:driver.keyevent()        括号里填入的是手机物理按键的数字代号 driver.press_keycode()        括号里填入的是键盘按键的数字代号 手机物理 ...

  4. vue根据ajax绑定数数。。

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. [面试]死锁-最简单的死锁demo

    死锁 什么是死锁 (百度百科) 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁 ...

  6. 【Unity游戏开发】你真的了解UGUI中的IPointerClickHandler吗?

    一.引子 马三在最近的开发工作中遇到了一个比较有意思的bug:“TableViewCell上面的某些自定义UI组件不能响应点击事件,并且它的父容器TableView也不能响应点击事件,但是TableV ...

  7. vue的计算属性与方法的不同

    计算属性 vue的模板里可以使用表达式,但是它的设计初衷是用于简单计算,在模板中放入太多逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...

  8. 一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

  9. js关于“call方法”百度,阿里超难面试题

    面试题:function fn(a,b){    console.log(this);    console.log(a);    console.log(a+b);}fn.call(1);fn.ca ...

  10. linux 上安装图形界面

    linux 上安装 vncserver 后,图形界面里只有灰底和一个terminal 框, 解决方法: 修改 .vnc/xstartup为 unset SESSION_MANAGER # exec / ...