js 创建 cookie 方法
// 没有设置 cookie 过期时间的话,默认是 会话cookie(浏览器关闭时,该cookie失效,被删除)
document.cookie = cname + "=" + value;
// 设置了过期时间的话,在设置的时间段内 cookie 一直存在有效,到达过期时间点时,cookie被删除而失效
document.cookie = cname + "=" + value + ";expires=" + expiresTime;
还可以设置 cookie 的 “path”,不设置的话,默认是 “path=/”,更多信息请上网查询
js 获取 cookie 方法
document.cookie; // 会获取所有 cookie 值,以 ‘;’ 分隔,具体 cookie值 需要 再进行一下处理来获取
js 删除 cookie 方法
不用设置 cookie 值,将过期时间设置为 过去时间 即可
document.cookie = cname + "=;expires=" + 过去时间;
// 例如:
var edate = new Date();
document.cookie = "testCookie=;expires=" + (edate.getTime() - 1).toUTCString();
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>cookie</title>
</head>
<body>
<button id="setCookie" class="setCookie">点击设置cookie</button>
<button id="getCookie" class="getCookie">点击获取cookie</button>
<button id="removeCookie" class="removeCookie">点击删除cookie</button>
<script>
window.onload = function () {
// 设置cookie
var btn1 = document.getElementById('setCookie');
var btn2 = document.getElementById('getCookie');
var btn3 = document.getElementById('removeCookie');
// 设置 cookie
btn1.onclick = function () {
setCookie('testCookie', '111');
setCookie('testCookie2', '222', 120);
}
// 获取 cookie
btn2.onclick = function () {
var c1 = getCookie('testCookie');
var c2 = getCookie('testCookie2');
console.log(c1, c2);
}
// 删除 cookie
btn3.onclick = function () {
setCookie('testCookie', null); // 这种不能删除 cookie,只是将 cookie值设置成了null,获取cookie会得到一个 'null' 的 字符串值
setCookie('testCookie', ''); // 这种是将 cookie 值设置成 空,没有删除 cookie
setCookie('testCookie2', '', -1); // 这种 会将 cookie 在浏览器中删除,设置超时时间为过去时间
}
function setCookie(cname, value, seconds) {
var edate = new Date();
edate.setTime(edate.getTime() + (seconds * 1000));
var cData = cname + "=" + value;
cData += (seconds == null) ? '' : (';expires=' + edate.toUTCString());
// console.log(cData); 可以F12控制台查看 cookie值
document.cookie = cData;
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
}
</script>
</body>
</html>
分别点击 “设置cookie”、“获取cookie”、“删除cookie” 按钮,控制台打印 结果如下:
可以看到浏览器 cookie 中 有了设置的 cookie值:
2分钟后刷新 浏览器,可以看到 “testCookie2” 不存在了,因为设置的 2分钟过期时间到了,删除掉了,“testCookie” 还在,关掉 浏览器后,“testCookie” 就不在了:
“testCookie2” 过期之前 关闭浏览器,再打开浏览器 查看该页面,“testCookie2” 还在,但是 “testCookie” 不在了:
如果 设置 cookie值 为 null,不会将 cookie 删除,设置 cookie值 为 ‘’ 空字符串也不会删除,只是值为空: