无痕模式应该是禁用了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();
}
}
}
完美解决。