BOM 中的 document.cookie 对象蕴含了所有的 cookie 字符串,以 Internet Explorer 浏览器为例,值被“;”号离开,格局大略为“名称 = 值;expires= 过期工夫”,当有多个 cookie 时名称与值以“;”号离开,开发者操作 cookie 只能本人进行解析操作,这样就变得十分繁琐,于是上面的办法提供了三个罕用的 cookie 操作方法:
// 依照指定的名称、值与存在小时数设置 Cookie
function SetCookie(_name, _value, _hours) {var d = new Date();
d.setTime(d.getTime() + (_hours * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = encodeURIComponent(_name) + "=" + encodeURIComponent(_value) + ";" + expires;
}
// 返回指定名称的 Cookie 的值
function GetCookie(_name) {var name = encodeURIComponent(_name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {var c = ca[i].trim();
if (c.indexOf(name) == 0) {return decodeURIComponent(c.substring(name.length, c.length));
}
}
return undefined;
}
// 删除指定名称的 Cookie
function DelCookie(_name) {document.cookie = encodeURIComponent(_name) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
SetCookie 办法应用小时作为单位,以“name=Henry”为例,SetCookie(“name”,”Henry”,0.5) 能够设置该 cookie 并存在半个小时;GetCookie(“name”) 能够获取到 “Henry” 的返回值;DelCookie(“name”) 间接删除,这个时候再调用 GetCookie(“name”) 只会失去 undefined 的返回值,SetCookie 办法既能够用来新增也能够用来批改。