safari无痕模式localStorage报错

来源:互联网 发布:qq飞车8周年剃刀数据 编辑:程序博客网 时间:2024/06/10 22:00

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

完美解决。

0 0