Js 操作Cookies 代码备份

cookie.js//////////

//<script language="JavaScript">
function Cookie(delim){//操作Cookie类
Array.prototype.splice=function(){
    var len=arguments.length,tarray=[],i=arguments[0]+arguments[1];
    if(len>1){
    while(i<this.length){
        tarray[tarray.length]=this[i++];
        }
    this.length=arguments[0];
    if(len>2) {
        for(var i=2;i<len;i++){
            this[this.length]=arguments;
        }
    }
    var tlen=tarray.length,i=0;
    while(i<tlen){
        this[this.length]=tarray[i++];
    }
    }
    return this;
}

this._Cookie=[];
//读取Cookies
this.Load=function(){
if(document.cookie.indexOf(";")!=-1){
    var _sp,_name,_tp,_tars,_tarslength;
    var _item=document.cookie.split("; ");
    var _itemlength=_item.length;
    while(_itemlength>0){
    _sp=_item[--_itemlength].split("=");
    _name=_sp[0];
    _tp=_sp[1].split(",");
    _tars=_tp.slice(1,_tp.length);
    this._Cookie[_name]=[];
    this._Cookie[_name]=_tars;
    this._Cookie[_name]["timeout"]=_tp[0];
    }
    return true;
}else {
    return false;
    }
}
//存储Cookies
this.Save=function(){
var _str,_ars,_mars,_marslength,timeout,i,key;
for(key in this._Cookie){
if(!this._Cookie[key])return;
_str=[];
_mars=CookieClass._Cookie[key];
_marslength=_mars.length;
for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars);
document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+";expires="+new Date(parseInt(_mars["timeout"])).toGMTString();
}
}
//返回cookie的数量
this.GetCookieCount=function(){
    var _length=0,key;
    for(key in this._Cookie)_length++;
    return _length;
}
//创建Cookies及其时效天数
this.Create=function(name,days){
    this._Cookie[name]=[];
    this._Cookie[name]["timeout"]=new Date().getTime()+days*86400000;
}
//修改Cookies的时效天数
this.Modify=function(name,days){
    this.Create(name,days);
}
//返回指定Cookies的过期时间
this.GetTime=function(name){
    return new Date(parseInt(this._Cookie[name]["timeout"]));
}
//删除Cookies及其子项
this.Delete=function(name){
    this.Create(name,0);
}
//增加一个子项
this.AddItem=function(name,value){
    this._Cookie[name][this._Cookie[name].length]=value;
}
//删除指定的子项
this.DelItem=function(name,index){
    this._Cookie[name].splice(index,1);
}
//返回Cookies的子项数量
this.GetCount=function(name){
    return this._Cookie[name].length;
}
//返回指定索引的子项
this.GetItem=function(name,index){
    return this._Cookie[name][index];
}

}
//</script>

cookie.html//////////////

<script type="text/javascript" src="cookie.js"></script>
<script>
var CookieClass = new Cookie();
//alert("CookieClass="+CookieClass);
alert(CookieClass.Load());
if(!CookieClass.Load()){
    alert("loaded");
    CookieClass.Create("Pass",1);
    CookieClass.Create("User",1);
    CookieClass.AddItem("Pass","Ps1");
    CookieClass.AddItem("Pass","Ps2");
    CookieClass.AddItem("Pass","Ps3");
    CookieClass.AddItem("Pass","Ps4");
    CookieClass.AddItem("Pass","Ps5");
    CookieClass.AddItem("Pass","Ps6");
    CookieClass.DelItem("Pass",1);
    CookieClass.Save();
}
    alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());
    alert(document.cookie);
</script>
<script language="Javascript">
/////////////////////////////
function eyunCookie(){
    this.key="";//初始化key。
    this.value="";//初始化key's value。
    this.expires=0;//初始化cookie的有效时间,单位毫秒。
this.init=function(){//对象初始化
    this.key="";
    this.value="";
    this.expires=0;
}

this.set=function(key,value,expires){//设置cookie
    if(this.key=="")this.key=key;
    if(this.value=="")this.value=value;
    if(this.expires<=0)this.expires=expires;
    if(this.key==""||typeof(this.key)!="string"){
        alert("请先设置欲保存的cookie名称!");
        this.init();
        return false;
    }
    if(this.key.match(/[,; ]/)){
        alert("cookie名称中不能包含“,”、“;”或空格!");
        this.init();
        return false;
    }
    if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined"){
        alert("cookie值中不能包含“,”、“;”或空格!");
        this.init();
        return false;
    }
    if(this.expires<=0||typeof(this.expires)!="number"){
        alert("请先正确设置cookie的有效时间!");
        this.init();
        return false;
    }
var cookie=document.cookie;
    if(cookie.indexOf(this.key+"=")!=-1){
        if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?")){
        this.init();
        return false;
    }
}

    var dt=new Date();
    dt.setTime(dt.getTime()+this.expires);
    document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString();
    this.init();
    return true;
}

this.get=function(key){//取得名为key的cookie的值
    if(key==""||key.match(/[,; ]/)){
    alert("请正确设置欲查找的cookie名称!")
    return false;
}
var cookie=document.cookie;
    var start=cookie.indexOf(key+"=");
    if(start==-1){
    alert("欲查找的cookie不存在!")
    return false;
}
var end=cookie.indexOf(";",start);
    if(end==-1)end=cookie.length;
    var getCookie=cookie.substring(start+key.length+1,end);
    alert("cookie:"+key+"的值为"+getCookie);
    return getCookie;
}

this.showAll=function(){//显示所有cookie
    alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));
}

this.del=function(key){//删除名为key的cookie
    if(key==""||key.match(/[,; ]/)){
    alert("请正确设置欲删除的cookie名称!")
    return false;
    }
    var dt=new Date();
    dt.setTime(dt.getTime());
    document.cookie=key+"=eyunDelete;expires="+dt.toGMTString();
    this.init();
    return true;
}

this.destroy=function(){//销毁所有cookie
    var dt=new Date();
    dt.setTime(dt.getTime());
    while(document.cookie!=""){
    document.cookie=document.cookie+";expires="+dt.toGMTString();
    this.init();
    return true;
    }
}

}
var cookieTest=new eyunCookie()
function settest(){
    cookieTest.key="test"
    cookieTest.value="ok"
    cookieTest.expires=31536000000
    cookieTest.set()
}
</script>
<input type=button onclick=cookieTest.showAll() value=read>
<input type=button onclick="cookieTest.set('a','test',31536000000)" value=setA>
<input type=button onclick="settest();" value=setTest>
<input type=button onclick="cookieTest.destroy()" value=clear>
<input type=button onclick=cookieTest.get("test") value=gettest>
<input type=button onclick=cookieTest.get("a") value=geta>
<input type=button onclick=cookieTest.set("test",1,31536000000) value=resetTest>
<input type=button onclick=cookieTest.del("test") value=delTest>


没有评论: