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 _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 value=setA><input type=button value=setTest><input type=button 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-11-03 20:50:45

JavaScript写的cookie类的相关文章

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=doc

javascript写的日历类(基于pj)_javascript技巧

先看看效果: 复制代码 代码如下: <script type="text/javascript" src="http://users4.Jabry.com/pengju/src/pj-2.1.1.mini.js"></script> <script type="text/javascript" src="http://users4.Jabry.com/pengju/src/Calendar.js"

JavaScript实现基于Cookie的存储类实例_javascript技巧

本文实例讲述了JavaScript实现基于Cookie的存储类.分享给大家供大家参考.具体分析如下: 通过这个JS类,你可以象使用session一样使用cookie,非常简单了! /* * CookieStorage.js * 本类实现像localStorage和sessionStorage一样的存储API * 不同的是,它是基于HTTP Cookies实现的. */ function CookieStorage(maxage, path) { // 两个参数分别代表储存有效期和作用域 // 获

JavaScript操作cookie类实例_javascript技巧

本文实例讲述了JavaScript操作cookie类.分享给大家供大家参考.具体如下: 用法: 一.设置cookie var cookie = new JSCookie(); // 普通设置 cookie .SetCookie("key1","val1"); // 过期时间为一年 var expire_time = new Date(); expire_time.setFullYear(expire_time.getFullYear() + 1); cookie .

javascript 写类方式之四_js面向对象

4.构造函数 + 原型 直接组装一个类:同一构造函数将组装出同一类型通过前面几篇得知javascript写类无非基于构造函数 和原型 .既然这样,我们写个工具函数来写类. 复制代码 代码如下: /** * $class 写类工具函数之一 * @param {Object} constructor * @param {Object} prototype */ function $class(constructor,prototype) { var c = constructor || functi

javascript制作的cookie封装及使用指南_javascript技巧

一.前言 之前使用cookie,都是document.cookie的形式去操作,兼容性虽好,但是麻烦.个人又是个比较喜欢造轮子的人,所以针对cookie,封装了个工具类.很长时间以来,我都喜欢写代码,而不太喜欢文字总结,也不太喜欢写些零碎的东西,看来得改. 二.思路 (1)如何封装,封装成啥样 如何封装:就是使用原生的js封装成工具,那样到哪里都能能用.针对document.cookie封装是最好的方式,所有的操作都基于document.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 java中的cookie使用时非常的广泛的,尤其一些 在线 影音 播放的网站, 一般都是用服务器段脚本将 影音文件的名字 放到cookie中,然后在客户段 用 javascript 读取 .这样可以隐蔽 文件的名字,防止下载. 下面就把一个javascript中使用 cookie的例子发出来.大家共同学习.  写 cookie          var expiresTime=new Date();         expiresTime.setTime(ex

使用JavaScript写的操作系统和输入法程序

javascript|程序   JavaScript是一门客户端的脚本语言,但是你千万不要认为它功能弱哦,因为你看了下面的例子之后就明白了. 一. 用JavaScript写的操作系统 呵呵,那天同事开玩笑说,要是有个用JS写的操作系统就好了. 我们都笑他异想天开,想不到的是,竟然真的有用JavaScript写的操作系统:JS/UIX.它的网址是:http://www.masswerk.at/jsuix/. * 系统介绍它的首页上是这么说的:JS/UIX 是一个基于Web浏览器的类Unix操作系统