js 操作 cookie 的方法如下:
//设置cookie
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
//获取cookie
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
//清除cookie
function clearCookie(name) {
setCookie(name, "", -1);
}
使用事例如下:
var user = getCookie("username");
if (user != "") {
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" && user != null) {
setCookie("username", user, 365);
}
}
一开始,我都差点以为cookie只能是在在线网站上面才有,而且cookie的作用域一般情况下是整个站点(比如你在某网站的页面1设置了cookie,然后你跳到了页面2,页面2里面也一样有此cookie的值),因为我的实践结果是,在本地的一个静态html(如 D:\demo 目录下)里面,加入了类似上面的js代码,但是每次我刷新页面的时候,浏览器都没有弹出我设置的cookie值,后来通过查找资料和实践之后,才知道,原因本地的静态页面,也可以有cookie的,因为我之前用的浏览器是chrome和360急速浏览器,而Google Chrome只支持在线网站的cookie的读写操作,对本地html的cookie操作是禁止的。我换成了IE浏览器之后,就可以了。
PS:chrome浏览器的cookie可以在resources里面查看,如下: