JavaScript Cookie 的使用
一、创建Cookie
document.cookie="username=aaaa";
可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。
默认情况下,cookie 在浏览器关闭时删除:
document.cookie="username=aaaa;expires=Sat, 15 Apr 2028 03:46:38 GMT;";
可以使用 path 参数告诉浏览器 cookie 的路径。
默认情况下,cookie 属于当前页面。(path=/)是根目录
document.cookie="username=aaaa;expires=Sat, 15 Apr 2028 03:46:38 GMT; path=/;";
二、修改 Cookie
和创建 Cookie类似,直接赋予新的值。
document.cookie="username=bbbb;expires=Sat, 15 Apr 2028 03:46:38 GMT; path=/;";
三、删除 Cookie
删除 cookie 非常简单。只需要设置 expires 参数为以前的时间即可。
注意,当删除时不必指定 cookie 的值。
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
四、获取 Cookie
使用以下代码来读取 cookie , 获取到的值像一个普通的文本字符串,其实它不是。
如:cookie1=value; cookie2=value;
var a = document.cookie;
console.log(a);
五、使用Cookie
**创建、修改、删除 Cookie 使用函数 **
cookie 的名称为 cname,cookie 的值为 cvalue,并设置了 cookie 的过期时间 expires。 如需设置路径,在创建时添加参数path
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
获取 cookie 值的函数
cookie 名的参数为 cname。
创建一个文本变量用于检索指定 cookie :cname + “=”。
使用分号来分割 document.cookie 字符串,并将分割后的字符串数组赋值给 ca (ca = document.cookie.split(’;’))。
循环 ca 数组,然后读取数组中的每个值,并去除前后空格 (c=ca[i].trim())。
如果找到 cookie(c.indexOf(name) == 0),返回 cookie 的值 (c.substring(name.length,c.length)。
如果没有找到 cookie, 返回 “”。
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
或者
function getCookie_(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) return unescape(arr[2]);
return null
}