在移动端做交互,我们经常会用到本地存储localstorage来存储变量。但是在safiry浏览器开启无痕浏览模式时,本地存储不管用了。那么是不是就不能行了呢。当然不是。除了localstorage和sessionStorage之后外,我们知道,可以使用cookie来存储。在safiry开启无痕浏览的时候,本地存储会抛异常,所以可以通过捕获异常来判断是否使用cookie存储。

var tracelesStorage=function(name, val){ if(arguments.length> 1){try{localStorage.setItem(name, val);}catch(e){setCookie(name,val,'d365');//抛出异常使用cookie存储}}else {var dataStr='';try{localStorage.setItem('cookieTest', 'test');//判断是否支持存储dataStr = localStorage.getItem(name);}catch(e){dataStr = getCookie(name)//同样抛出异常我们使用cookie去取值}return dataStr;}}
    //下面是cookie存储的取值和存值
var getCookie=function(name)//取cookies值{var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");if(arr=document.cookie.match(reg)){if(!arr[2]){return null ;}else if(arr[2] !='null'){return unescape(arr[2]) ;}else{return null ;};}else{return null;}}//存储Cookievar setCookie=function(name, value, time){var strsec = getsec(time);var exp = new Date();exp.setTime(exp.getTime() + strsec * 1);document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString()+";path=/";}var  getsec=function(str) {var str1 = str.substring(1, str.length) * 1;var str2 = str.substring(0, 1);if (str2 == "s") {return str1 * 1000;} else if (str2 == "h") {return str1 * 60 * 60 * 1000;} else if (str2 == "d") {return str1 * 24 * 60 * 60 * 1000;}}//如果要清除存储,同样抛异常的时候就需要清除cookie
var clearStorage=function(name){    // 清除存储if(!name) { return false;}try{localStorage.setItem('cookieTest', 'test');//正常清除localStorage.removeItem(name);}catch(e){document.cookie = name + "=" + null + ";expires=" + 0+";path=/";//抛出异常,存储到了cookie,因此清除cookie。}}

“`

如果用sessionStorage也是同样的思路。

关于safiry开启无痕浏览时本地存储的处理相关推荐

  1. ios safari 开启无痕浏览(隐私模式)报QuotaExceededError: DOM Exception 22异常解决办法...

    // 检测safari是否开启无痕浏览 (function () {var testKey = 'test'var storage = window.sessionStoragetry {storag ...

  2. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    2019独角兽企业重金招聘Python工程师标准>>> 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStorage存储一些数据,相比最多能 ...

  3. 谷歌浏览器默认开启无痕浏览

    在快捷方式的属性加上空格 再加上下面的代码 --incognito

  4. 浏览器无痕浏览还能查到记录吗,如何开启无痕模式

    一些朋友对浏览器的无痕浏览比较好奇,是不是用这个无痕模式浏览网站,就能瞒天过海了?使用浏览器的无痕浏览还能查到记录吗?今天针对这些问题我们来聊一聊,如何开启无痕模式,浏览器无痕模式是否真的" ...

  5. 浏览器无痕模式有什么作用,手机浏览器开启无痕模式的方法

    在我们的手机基本上都安装了浏览器,当我们在上网过程中,不想浏览记录被留下,那么开启无痕模式是非常有必要的.那么,浏览器的无痕模式有什么作用,手机浏览器如何开启无痕模式呢?下面教大家如何在手机浏览器中开 ...

  6. Safari无痕浏览影响localStorage

    在移动端做交互,我们经常会用到本地存储localStorage来存储变量. if(window.localStorage){localStorage.setItem('key','value'); } ...

  7. Chrome的无痕浏览实现初探

    一. 功能定义 首先要从功能上明确无痕浏览的作用和目的.涉及的功能包括: Bookmark, History (Input, Browse, Download, Forms/Auto complete ...

  8. js判断无痕浏览模式(修改)

    最近做web商城,遇到一个棘手的问题: 用户反映登录了商城之后,过一段时间就需要重新登录,频率很高,我们通过对该用户的访问记录进行检测,发现的确存在该问题.因为用户的信息是存在本地localStroa ...

  9. 苹果电脑怎么无痕浏览网页

    我们都知道苹果电脑macbook里的safari浏览器可以开启无痕浏览模式,用来保护自己的隐私,非常好用.那么苹果电脑怎么无痕浏览呢?请看小编的详细介绍吧! mac网页怎么开无痕浏览图文步骤: 1.打 ...

最新文章

  1. X5同层播放器应用实践
  2. typedef interrupt void (*PINT)(void)的分析
  3. POJ 3342 Party at Hali-Bula ——(树型DP)
  4. 运算符中的二元重载,为什么要调用友元函数而不是全局函数的问题
  5. # 模糊图片边缘_PS大神给你变个魔术,如何巧用PS把模糊的照片变清晰
  6. (转)c3p0配置大全
  7. Selenium IDE安装和检查获取的控件路径技巧
  8. Java:抽象类笔记
  9. ubuntu16.04安装微信
  10. java jtree 监听_Java JTree.addTreeExpansionListener方法代码示例
  11. Android上Sensor移植的总结
  12. [leetcode] 117. 填充同一层的兄弟节点 II
  13. java网站后台管理系统_java网站后台管理系统
  14. OpenCV——图像二值化
  15. H3C Comware V3 端口聚合
  16. 翻遍知乎1000多个高赞回答,我找到了这7本计算机圣经
  17. 【问题描述】打印2018年的日历
  18. matlab计算概率分布,Matlab中的离散概率分布计算
  19. 微软人工智能公开课.md
  20. C语言字符串分割 trimmed simplified split

热门文章

  1. 2021 京东 校招面试
  2. java 爬数据工具 知乎_知乎爬虫之4:抓取页面数据
  3. 谁与争锋,JDK动态代理大战CGLib动态代理
  4. 将VC++黑白屏蔽图转换为Cocos2dx中可用的png
  5. 修改frame快捷方法,不必再繁琐的计算
  6. 3d游戏建模|3D电影、游戏角色是怎么制作的?
  7. 怎样让你的软文更有说服力?四个办法帮你赢得用户信任
  8. 用verilog HDL实现数字基带信号的2FSK调制
  9. @用Python的turtle库画一个奥运五环!
  10. 一对一 视频聊天源码,不要小瞧社交平台的盈利方式