posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

javascript cookie(转)

Posted on 2007-11-28 17:13 G_G 阅读(415) 评论(0)  编辑  收藏 所属分类: javascript
引用
http://blog.joycode.com/joe/archive/2005/09/06/63068.aspx
http://www.itlearner.com/article/2006/3325.shtml


使用方法:js


//获得Cookie解码后的值
function GetCookieVal(offset){
    
var endstr = document.cookie.indexOf (";", offset);
    
if (endstr == -1)
    endstr 
= document.cookie.length;
    
return unescape(document.cookie.substring(offset, endstr));
}

//设定Cookie值
function SetCookie(name, value){
    
var expdate = new Date();
    
var argv = SetCookie.arguments;
    
var argc = SetCookie.arguments.length;
    
var expires = (argc > 2? argv[2] : null;
    
var path = (argc > 3? argv[3] : null;
    
var domain = (argc > 4? argv[4] : null;
    
var secure = (argc > 5? argv[5] : false;
    
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
    document.cookie 
= name + "=" + escape (value) +((expires == null? "" : ("; expires="+ expdate.toGMTString()))
    
+((path == null? "" : ("; path=" + path)) +((domain == null? "" : ("; domain=" + domain))
    
+((secure == true? "; secure" : "");
}

//删除Cookie
function DelCookie(name){
    
var exp = new Date();
    exp.setTime (exp.getTime() 
- 1);
    
var cval = GetCookie (name);
    document.cookie 
= name + "=" + cval + "; expires="+ exp.toGMTString();
}

//获得Cookie的原始值
function GetCookie(name){
    
var arg = name + "=";
    
var alen = arg.length;
    
var clen = document.cookie.length;
    
var i = 0;
    
while (i < clen)
    {
        
var j = i + alen;
        
if (document.cookie.substring(i, j) == arg)
        
return GetCookieVal (j);
        i 
= document.cookie.indexOf(" ", i) + 1;
        
if (i == 0break;
    }
    
return null;
}

jsunit
<!DOCTYPE html 
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd"
>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>x</title>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript" src="lib/jsUnitCore.js"></script>
<script type="text/javascript">
    
    
    
function testValidArgs() { // 测试的函式要以test名称作为开头
        SetCookie('li','gg');
        assertEquals(
"cookie get err", 'gg', GetCookie('li') );
        assertEquals(
"cookie getVal err", 'li=gg', GetCookieVal('li') );
        
        
        DelCookie(
"li");
        assertEquals(
"cookie del err ",null, GetCookie('li') );
        
        
    }

    
    
</script>
</head>
<body>
</body>
</html>

运行 Jsunit-> testRunner.html 通过测试



只有注册用户登录后才能发表评论。


网站导航: