BOM 中的 document.cookie 对象蕴含了所有的 cookie 字符串,以 Internet Explorer 浏览器为例,值被 “ ; ” 号离开,格局大略为 “ 名称=值;expires=过期工夫 ”,当有多个 cookie 时名称与值以 “ ; ” 号离开,开发者操作 cookie 只能本人进行解析操作,这样就变得十分繁琐,于是上面的办法提供了三个罕用的 cookie 操作方法:
//依照指定的名称、值与存在小时数设置 Cookiefunction 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;}//删除指定名称的 Cookiefunction 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 办法既能够用来新增也能够用来批改。