JavaScript 通过 来获取 cookie 。
遗憾的是, 只能获取所有 cookie 的集合,不能获取单个 cookie 。
例如,获取当前cookie集合:
遗憾的是, 只能获取所有 cookie 的集合,不能获取单个 cookie 。
例如,获取当前cookie集合:
<input type="button" value="获取cookie" />
<script type="text/javascript">
("demo1").οnclick=function(){
alert();
}
</script>
实例演示:
我们可以自定义一个函数来获取单个 cookie 的值。
我们知道,cookie 集合的格式是这样的:
name1=value1 ; name2=value2 ; name3=value3 ; ...
将 cookie 以分号(;)分组,再以等号(=)分组,就能得到每个 cookie 的名称和值。
/**
* func getCookie() 获取单个cookie的值
* pram cookieName cookie的名称
**/
function getCookie(cookieName){
var cookieObj={},
cookieSplit=[],
// 以分号(;)分组
cookieArr=(";");
for(var i=0,len=;i<len;i++)
if(cookieArr[i]) {
// 以等号(=)分组
cookieSplit=cookieArr[i].split("=");
// Trim() 是自定义的函数,用来删除字符串两边的空格
cookieObj[cookieSplit[0].Trim()]=cookieSplit[1].Trim();
}
return cookieObj[cookieName];
}
例如,获取 name 的值:
getCookie["name"];
对上面的代码稍作修改,就可将 cookie 的值保存为对象的属性,使用时非常方便。代码如下:
/**
* func getCookieObj() 获取所有cookie的值并将其保存为对象的属性
**/
function getCookieObj(){
var cookieObj={},
cookieSplit=[],
// 以分号(;)分组
cookieArr=(";");
for(var i=0,len=;i<len;i++)
if(cookieArr[i]) {
// 以等号(=)分组
cookieSplit=cookieArr[i].split("=");
// Trim() 是自定义的函数,用来删除字符串两边的空格
cookieObj[cookieSplit[0].Trim()]=cookieSplit[1].Trim();
}
return cookieObj;
}
例如,获取 name 的值:
var cookieObj=getCookieObj();
;
举例,设置并获取cookie的值:
<table>
<tr>
<td>用户名:</td>
<td><input type="text" /></td>
<td>密码:</td>
<td><input type="text" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="设置Cookie" /></td>
<td colspan="2" align="center"><input type="button" value="获取Cookie" /></td>
</tr>
</table>
<script type="text/javascript">
("demo_button1").οnclick=function(){
var cookie_username="username="+escape(("demo_input1").value)+";"+
"expire="+((new Date()).getTime()+600*1000);
var cookie_password="password="+escape(("demo_input2").value)+";"+
"expire="+((new Date()).getTime()+600*1000);
=cookie_username;
=cookie_password;
}
("demo_button2").οnclick=function(){
var cookieObj=getCookieObj();
alert(
"用户名:"+unescape()+"\n"+
"密码:"+unescape()
);
}
</script>
实例演示:
用户名: | 密码: | ||