入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

safari无痕模式localStorage报错

创建时间:2016-05-23 投稿人: 浏览次数:2363

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

完美解决。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。