JS写的cookie类

转自: http://download.cnblogs.com/webcool/
< 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 >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值