JS写的cookie类

cookie|js

<script language="JScript">
function Cookie(delim){
    this._Cookie=[];
    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;
            }
        return false;
        }
    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[i]);
            document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+(_mars["timeout"]==0?"":";expires="+new Date(parseInt(_mars["timeout"])).toGMTString());
            }
        
        }
    this.GetCookieCount=function(){
        var _length=0,key;
        for(key in this._Cookie)_length++;
        return _length;
        }
    this.Create=function(name,days){
        days=days?days:0;
        if(!this._Cookie[name])this._Cookie[name]=[];
        this._Cookie[name]["timeout"]=days!=0?new Date().getTime()+parseInt(days)*86400000:0;
        }
    this.Modify=function(name,days){
        this.Create(name,days);
        }
    this.GetTime=function(name){
        return new Date(parseInt(this._Cookie[name]["timeout"]));
        }
    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){
        var _ttime=this._Cookie[name]["timeout"];
        this._Cookie[name]=this._Cookie[name].slice(0,index).concat(this._Cookie[name].slice(parseInt(index)+1,this._Cookie[name].length));
        this._Cookie[name]["timeout"]=_ttime;
        }
    this.GetCount=function(name){
        return this._Cookie[name].length;
        }
    this.GetItem=function(name,index){
        return this._Cookie[name][index];
        }
    }
</script>
<script language="JScript">
var CookieClass=new Cookie();
if(!CookieClass.Load()){
    CookieClass.Create("Pass",1);
    CookieClass.AddItem("Pass","Ps1");
    CookieClass.AddItem("Pass","Ps2");
    CookieClass.AddItem("Pass","Ps3");
    CookieClass.AddItem("Pass","Ps4");
    CookieClass.DelItem("Pass",1);
    CookieClass.Save();
    }
alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());
alert(document.cookie);
</script>     <script>
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(){alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));}//显示所有cookie
   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>

时间: 2024-08-30 10:00:57

JS写的cookie类的相关文章

ASP.NET获取不到js写的cookie解决方法

今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码:  Code //写cookies function setCookie(name,value) { document.cookie = name "=" escape (value) ";"; //设置的cookie关闭浏览即失效 } //JS设置来路写入到cookie

JavaScript写的cookie类

cookie|javascript <script language="JScript"> function Cookie(delim){     this._Cookie=[];     this.Load=function(){         if(document.cookie.indexOf(";")!=-1){             var _sp,_name,_tp,_tars,_tarslength;             var _

JS无法清除Cookie的解决方法

  项目中使用sdmenu.js时,需要在登录时清除Cookie,而sdmenu默认是会保存Cookie的 下面是sdmenu.js保存Cookie的方法 document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/&

用户-js 页面登陆cookie问题

问题描述 js 页面登陆cookie问题 js 中 我登陆自己写的一个网站 里面保留了我的cookie值 下次登陆的时候就不要输入密码和用户名了 然后我把浏览器的cookie清空 我在把那个登陆成功的url输入到没有cookie的地址栏中 它怎么弹出要重新的登陆login界面 而不是已经成功的defaul页面 我记得以前好像有个过滤的方法 叫什么httpH..... 忘记了 请大神赐教!!!

java创建文件出错-创建文件类,调用自己写的工具类,为什么String path后面的路径要自己手动建好才能运行出来

问题描述 创建文件类,调用自己写的工具类,为什么String path后面的路径要自己手动建好才能运行出来 求大神给个完整的答案,不要改动太大,本人新手 解决方案 创建文件之前要确保文件所在的路径是存在.你这个没有创建成功就是因为路径不存在导致的.加个判断吧. if(!f1.getParentFile().exists()){ f1.mdirs(); } 解决方案二: 本来就是这样,file只有创建文件的功能,没有根据路径先创建文件夹再创建文件的功能. 你可以用split分割路径,自己先逐层创建

java-HTML中js如何调用C#类中的方法

问题描述 HTML中js如何调用C#类中的方法 js代码: //搜索跳转至中转页 function Search(id) { var Sou1 = document.getElementById('Sou1') var T1 = Sou1.value; if (id == "1") { if (Sou1.value != "") { top.location.href = 'web/Search.aspx?S=1&T=' + T1; } } } C#类代码:

JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面_javascript技巧

简单写了写,可根据指定参数Deadline格式的时间进行测试,如存在些不严谨的地方还请指出. // 设置cookie在当天指定时间点过期并提示 function setCookie(name,value,Deadline,callback){ // 获取当前日期对象 var curDate = new Date(); // 获取当前日期对应的时间戳 var curTime = curDate.getTime(); // 获取指定时间的时间戳 var endTime = convertTime(c

用PHP的Socket写的POP3类

[摘 要] 查看 POP3/SMTP 协议的时候想尝试一下自己写一个操作类,核心没啥,就是使用 fsockopen ,然后写入/接收数据,只实现了最核心的部分功能,当作是学习 Socket 操作的练手. 查看 POP3/SMTP 协议的时候想尝试一下自己写一个操作类,核心没啥,就是使用 fsockopen ,然后写入/接收数据,只实现了最核心的部分功能,当作是学习 Socket 操作的练手.其中参考了 RFC 2449和一个国外的简单Web邮件系统 Uebimiau 的部分代码,不过绝对没有抄他

使用PHP的Socket写的POP3类

查看 POP3/SMTP 协议的时候想尝试一下自己写一个操作类,核心没啥,就是使用 fsockopen ,然后写入/接收数据,只实现了最核心的部分功能,当作是学习 Socket 操作的练手.其中参考了 RFC 2449和一个国外的简单Web邮件系统 Uebimiau 的部分代码,不过绝对没有抄他滴,HOHO,绝对原创.如果你喜欢,请收藏,随便修改,嗯,但是记得不要删除偶类里的声名,毕竟偶也是辛辛苦苦写了好几天呐.另外,欢迎自由发挥,改善或者修正这个类,希望能够为你所用.代码没有认真仔细的调试,发