您的位置:首页 > 其它

safari无痕模式localStorage报错

2016-05-23 17:49 190 查看
无痕模式应该是禁用了localStorage对象,但是window.localStorage是存在的

但是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();
}
}
}


完美解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: