Cookie 是存储在计算机上的小型文本文件中的数据 。Web 浏览器和服务器使用 HTTP 协议进行通信,HTTP 是一种无状态协议。当 Web 服务器将网页发送到浏览器时,连接会关闭,并且服务器会忘记有关用户的所有信息。但是对于商业网站,需要维护不同页面之间的会话信息。为了方便记住用户信息, cookie应运而生。
cookie以键值对的形式存储在计算机中。在JavaScript中,使用 “document.cookie” 属性来创建、删除和读取cookie。注意,这个对象提供的接口非常原始。
document.cookie = "user=koala";添加到期日期(UTC 时间):
document.cookie = "user=koala; expires=Fri, 23 Dec 2021 11:20:00 UTC";使用path参数,可以告诉浏览器cookie所属的路径。默认情况下,cookie属于当前页面。
document.cookie = "user=koala; expires=Fri, 23 Dec 2021 11:20:00 UTC;path=/";在JavaScript中更改cookie与创建它们相同,旧cookie的值被删除。
var temp = document.cookie;
document.cookie = "user=; expires=Fri, 23 Dec 2021 11:20:00 UTC;path=/";简单封装:
// 设置
function setCookie(cookName, cookValue, expiry) {
var dt = new Date();
dt.setTime(dt.getTime() + (expiry * 24 * 60 * 60 * 1000));
var expires = "expires=" + dt.toUTCString();
document.cookie = cookName + "=" + cookValue + ";" + expiry + ";path=/";
}
// 读取
function getCookie(cookName) {
var cname = cookName + "=";
var deCookie = decodeURIComponent(document.cookie);
var cookArray = decodedCookie.split(';');
for (var i = 0; i < cookArray.length; i++) {
var c = cookArray;
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(cname) == 0) {
return c.substring(cname.length, c.length);
}
}
return "";
}
// 删除
function deleteCookie(name) {
setCookie(name, "", -1);
}