文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
document 对象
Window.Open详解
JS replace 方法
JScript 属性
JScript 对象
JScript 方法
关于window.opener的用法
JavaScript语法——style.display 属..
不被拦截的弹出窗口代码
showModalDialog和showModelessDialog..
showModelessDialog()使用详解
IE中非模式对话框(showModelessDialog..
JS eval()函数
Preferences 指南
JS中的setTimeout和setInterval的区别
JavaScript对象与数组参考大全
javascript动态增加、删除、填充表格..
用Java实现几种常见的排序算法
JavaScript 日期函数
JavaScript 使用字符串函数
如何用Javascript获得TextArea中的光..
Document 对象方法
在input中只能输入数字
selection.createRange() 用法例子
获取网页各种宽高的值
JavaScript方法 - indexOf方法
substring函数详解
40种网页常用小技巧(javascript)
event.X和event.clientX有什么区别
clientX, clientY,offsetX, offsetY,..


技术教程 -> JavaScript教程 ->  
JS写的cookie类
来源:http://download.cnblogs.com/webcool/   人气:899   录入时间:2007-11-8
    
   <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());
   
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987