先说下需求,有两个简单的页面,一个登录页,一个首页,登录时用cookie记住密码,在首页用cookie判断是否登录,此时有个需求只要离开当前页面就需要重新登录
cookie的代码
//设置
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
//获取
function getCookie(cname, cvalue) {
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 "";
}
判断离开页面代码
// 各种浏览器兼容
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
// 添加监听器,在title里显示状态变化
document.addEventListener(visibilityChange, function() {
if (document[hidden]) {
// 用户没有浏览当前页面
setCookie("pasword","","-1");//清除cookie
} else {
// 用户正在浏览当前页面
}
}, false);