safari无痕模式localStorage报错
2016-05-23 17:49
190 查看
无痕模式应该是禁用了localStorage对象,但是window.localStorage是存在的
但是document.cookie是可以使用的
cookie.operate.js
完美解决。
但是document.cookie是可以使用的
try { localStorage.setItem('isPrivateMode', '1'); localStorage.removeItem('isPrivateMode'); window.isPrivateMode = false; } catch(e) { window.isPrivateMode = true; } if (!window.isPrivateMode && window.localStorage) { // 不是 Safari 无痕模式并且能用 localStorage localStorage.removeItem('scheme'); localStorage.setItem('scheme',scheme); localStorage.removeItem('caiqrhost'); localStorage.setItem('caiqrhost',caiqrhost); localStorage.removeItem('paytype'); localStorage.setItem('paytype',paytype); localStorage.removeItem('classname'); localStorage.setItem('classname',classname); } else{ try{ var cookie = new cookies(); cookie.delCookie('scheme'); cookie.delCookie('caiqrhost'); cookie.delCookie('paytype'); cookie.delCookie('classname'); cookie.setCookie('scheme',scheme,30); cookie.setCookie('caiqrhost',caiqrhost,30); cookie.setCookie('paytype',paytype,30); cookie.setCookie('classname',classname,30); //alert(cookie.getCookie('classname')); } catch(e){ alert(e); } }
cookie.operate.js
var cookies = function(){}; cookies.prototype = { setCookie:function(c_name, value, expiredays){ var exdate=new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); }, getCookie:function(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)){ return (arr[2]); } else{ return null; } }, delCookie:function(name){ var cookie = new cookies(); var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=cookie.getCookie(name); if(cval!=null){ document.cookie= name + "="+cval+";expires="+exp.toGMTString(); } } }
完美解决。
相关文章推荐
- 动态规划——unique-paths
- 【gradle】问题及解决
- Android组件Activity初探
- Note1
- CSS3和HTML问题集锦
- JUnit中常用的接口和类
- JUnit的各种断言
- 深入理解 Session 与 Cookie
- shell字符串判空
- spark资料
- socat
- Windows 64位 安装PIP
- 高德地图不响应点击事件
- 支持多版本接口api的开源框架NHVersion
- 窗口操作
- charset="UTF-8/ gb2312"
- 属性重载:__set() & __get()
- Android Dev Intro - Some Concepts on Android Graphics Architecture
- AS的一些简单设置
- android组件之BroadcastReceiver广播