i = document.cookie.indexOf(" ", i) + 1;
if(i == 0) break;
}
return;
}
// store cookie value with optional details as needed
function setCookie(name, value, expires, path, domain, secure)
{
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
// remove the cookie by setting ancient expiration date
function deleteCookie(name,path,domain)
{
if(getCookie(name))
{
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
使用
getCookie(name)函数来读取 cookie 中保存的值,参数 name 为 cookie 项的名称。如
果该
cookie 项不存在则返回一个空字符串。使用 setCookie()函数来保存 cookie 项的值,其中
第一、二两个参数分别为
cookie 项的名称和值。如果想为其设置一个过期时间,那么就需要
设置第三个参数,这里需要通过
getExpDate()获得一个正确格式的参数。最后,使用
deleteCookie()来删除一个已存在的 cookie 项,实际上是通过让该项过期。
cookie 将数据保存在客户端。页面的脚本只能读取所在域和服务器的 cookie 值,如果域内
有多个服务器,那么需要设置第五个参数,以指定服务器。浏览器的容量一般限定为每服务
器
20 个 name/value 对,每个 cookie 项不超过 4000 个字符,更现实点,单个 cookie 项应少
于
2000 字符,也就是说不要用 cookie 在客户端保存大容量数据。
不同的浏览器保存
cookie 的方式也有所不同。IE 为每个域的 cookie 建立一个文本文件,
而
Netscape 则将所有的 cookie 存储在同一个文本文件中。
注意:
cookie 存放在客户端,所以会受到浏览器设置的影响,比如用户可能会禁用
cookie。要检测浏览器是否支持 cookie,使用属性 navigator.cookieEnabled 来判断。