safari无痕模式localStorage报错
无痕模式应该是禁用了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();
}
}
}
完美解决。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。