Js对Cookie的操作函数

//写入 cookie
//
不区分 cookieName 的大小写
//
不考虑子键
function ResponseCookies(cookieName, cookieValue, expires)
{
    
if (expires)
    
{
        
//指定了 expires
        document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue) + "; expires=" + expires.toGMTString();
    }

    
else
    
{
        document.cookie 
= ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue);
    }

}


//获取并返回与 cookieName 同名的 cookie 名称,允许大小写不同
//
如果不存在这样的 cookie,就返回 cookieName
function ResponseCookies_GetCookieName(cookieName)
{
    
var lowerCookieName = cookieName.toLowerCase();
    
var cookieStr = document.cookie;
    
    
if (cookieStr == "")
    
{
        
return cookieName;
    }

    
    
var cookieArr = cookieStr.split("");
    
var pos = -1;
    
for (var i=0; i<cookieArr.length; i++)
    
{
        pos 
= cookieArr[i].indexOf("=");
        
if (pos > 0)
        
{
            
if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)
            
{
                
return cookieArr[i].substring(0, pos);
            }

        }

    }

    
return cookieName;
}


//获取并返回 cookie 值
//
不区分 cookieName 的大小写
//
dfltValue 为默认返回值
//
不考虑子键
function RequestCookies(cookieName, defValue)
{
    
var lowerCookieName = cookieName.toLowerCase();
    
var cookieStr = document.cookie;
    
    
if (cookieStr == "")
    
{
        
return dfltValue;
    }

    
    
var cookieArr = cookieStr.split("");
    
var pos = -1;
    
for (var i=0; i<cookieArr.length; i++)
    
{
        pos 
= cookieArr[i].indexOf("=");
        
if (pos > 0)
        
{
            
if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)
            
{
                
return unescape(cookieArr[i].substring(pos+1, cookieArr[i].length));
            }

        }

    }

    
return defValue;
}


//--------------------------------------------------------------------
function WriteCookie()
{
 
var len= arguments.length;
 
var domain,name,value,days;
 
switch(len)
 
{   
    
case   2:
     domain 
= "private";
     name 
= arguments[0];
     value 
= arguments[1];
     days 
= 0;
     
break;
    
case  3:
     domain 
= "private";
     name 
= arguments[0];
     value 
= arguments[1];
     days 
=  arguments[2];
     
break;
    
default:
   domain 
= "";
   name 
= "";
     value 
= "";
     days 
= 0;
     
break;
 }

 jsWriteCookie(domain,name, value, days);
}


function GetCookie(domain,name,defValue)
{
 
var len= arguments.length;
 
switch(len)
 
{   
    
case   1:
     domain 
= "private";
     name 
= arguments[0];
     defValue 
= "";
     
break;
    
case   2:
     domain 
= "private";
     name 
= arguments[0];
     defValue 
= arguments[1];
     
break;
     
case   3:
     domain 
= arguments[0];
     name 
= arguments[1];
     defValue 
= arguments[2];
     
break;
   
default:
   domain 
= "";
   name 
= "";
   defValue 
= "";
     
break;
 }

 
return jsGetCookie(domain,name, defValue);
}


function Clear()
{
 
var len= arguments.length;
 
var domain,name;
 
switch(len)
 
{   
    
case   0:
     domain 
= "";
     name 
= "";
     
break;
    
case   1:
     domain 
= arguments[0];
     name 
= "";
     
break;
    
case   2:
     domain 
= arguments[0];
     name 
= arguments[1];
     
break;
    
default:
     
break;
 }

 jsClear(domain,name);
}


function jsWriteCookie(domain,name, value, days) 

 
var expire_date=new Date(); 
 
var ms_from_now=days*24*60*60*1000;
 domain 
= domain.toLowerCase();
 
var domainstr,curhost,cookiedomain;
 curhost 
= GetHost();
 expire_date.setTime(expire_date.getTime()
+ms_from_now);
 
if(days == 0)
 
{
  document.cookie 
=encodeURIComponent(domain+name).toLowerCase()+ "=" + encodeURIComponent(value) + "; ; path=/; domain="+curhost+""
 }

 
else
 

  document.cookie 
=encodeURIComponent(domain+name).toLowerCase() + "=" + encodeURIComponent(value) + "; expires=" + expire_date.toGMTString() + "; path=/; domain="+curhost+"";   
 }

}


function jsGetCookie(domain,name,defValue) 
{
    domain 
= domain.toLowerCase();

    name 
= name.toLowerCase();
    
var jsmsg="";
    jsmsg 
+= "name="+name+"\r";
    jsmsg 
+= "defValue="+defValue+"\r";
 
var search; 
 search 
= encodeURIComponent(domain+name).toLowerCase()+ "="
    jsmsg 
+= "search="+search+"\r";
 offset 
= document.cookie.indexOf(search) 
 
if (offset != -1
 

  offset 
+= search.length ; 
  end 
= document.cookie.indexOf(";", offset) ; 
  
if (end == -1
   end 
= document.cookie.length; 
  
return decodeURIComponent(document.cookie.substring(offset, end)); 
 }
 
 
else 
  
return defValue;
}


function jsClear(domain,name)
{
 
var expdate = new Date(); 
 expdate.setTime(expdate.getTime() 
- (86400 * 1000 * 1)); 
 WriteCookie(name, 
"", expdate);
 
}


function GetHost(url) 

 
var host = "";
 
if(typeof url == "undefined" || null == url)
  url 
= window.location.href;
 
var regex = /.*\:\/\/([^\/]*).*/;
 
var match = url.match(regex);
 
if(typeof match != "undefined" && null != match)
  host 
= match[1];
 
return host;
}


posted on 2007-08-14 23:27  廖勇军  阅读(432)  评论(0编辑  收藏  举报

导航