Cookie 是由 name=value 形式成对存在的。一个 Cookie 字符串最多可以存储 20 对 name=value 。 Cookie 字符串必须以分号作为结束符。 Cookie 除了 name 属性之外,还存在其它 4 个相关属性。
set-Cookie:name=value;[expirse=date];[path=dir];[domain=domainname];[secure]
使用 Cookie 可以使网页更具有人性化,它能够存储访客的相关信息等,但使用 Cookie 也会相应带来一些安全隐患。如果用户不喜欢使用 Cookie ,可以在 IE 浏 览器将 Cookie 删除,也可以在浏览器中禁止 Cookie 的使用。
Cookie 存储在 Document 对象的 cookie 属性中。它实际上是一个字符串,当页面载入时自动生成。 Cookie 的一组信息由分号和一个空格隔开,每个信息都由 Cookie 名称和 Cookie 值组成。
name1=value1;name2=value2;name3=value3;
Cookie 的写入首 先将 Cookie 的名称和 Cookie 值放入一个变量中。
语法格式如下:
var cookieName = 'name4';
var cookieValue = 'value4';
var totalCookie = cookieName + '=' + cookieValue;
然后将该变量赋给 Document 对象的 cookie 属性即可。
语法格式如下:
document.cookie = totalCookie;
当用户将 Cookie 写入后,新的 Cookie 字符串并不覆盖原来的字符串,而是自动添加到原来 Cookie 字符串的后面。例如。
name1 = value1;
name2 = value2;
name3 = value3;
name4 = value4;
一般情况下, Cookie 本身不能包括分号、逗号或空格等专用字符。但是对于这些字符,可以使用编码的形式进行传输,也就是将文本字符串中的专用字符使用转换成对应的十六进制 ASCII 值。在 JavaScript 中,可以使用 encodeURI 函数将文本字符串编辑为一个有效的 URI 。要读取编辑后的字符串,需要使用 decodeURI 函数进行解码操作。
function setCookie(name, value, expires, path, domain, secure) {
var today = new Date();
today.setTime(today.getTime());
if (expires) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date(today.getTime() + expires);
document.cookie =
name +
'=' +
escape(value) +
(expires ? ';expires=' + expires_date.toGMTString() : '') +
(path ? ';path=' + path : '') +
(domain ? ';domain=' + domain : '') +
(secure ? ';secure' : '');
}