思路,在首页设置求取登陆的时间记住,在其他页面获取当前时间和登陆时间两者比较大于多少显示登陆超时
首页设置如下
//设置cookie
addCookie('logDate',logDate,0);
//添加一个cookie
function addCookie(name,value,expireHours){
var cookieStr=name+"="+escape(value);
if(expireHours>0){ //为0时不设定过期时间,浏览器关闭时cookie自动消失
var date=new Date();
date.setTime(date.getTime()+expireHours*3600*1000);
cookieStr=cookieStr+";expire="+date.toGMTString();
}
document.cookie=cookieStr;
}
在其他页面获取登陆时间logDate,设置如下
$(document).ready(function()
{
var logDate=getCookie("logDate");//得到cookie
compare_hms(logDate);//判断是否超时
}
});
//获取指定名称的cookie值
function getCookie(name){
var strCookie=document.cookie;
var arrCookie=strCookie.split("; ");
for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
if(arr[0]==name) return unescape(arr[1]);
}
return "";
}
function compare_hms(date){
var nowDate1=new Date(); //现在时间
var nowDates=new Date(date); //登录时间
var now= nowDate1.getHours()*60*60+ nowDate1.getMinutes()*60+ nowDate1.getSeconds();
var host= nowDates.getHours()*60*60+ nowDates.getMinutes()*60+ nowDates.getSeconds();
var str=parseInt(host-now);
var s_str="";
if(str<0){
s_str=str.toString().replace("-","");
}else{
s_str=str;
}
if(parseInt(s_str)>1800)
{
alert("登录超时.请重新登录!");
window.location.href="http://XXXXXXX" ;
}else{
delCookie('logDate');//删除旧的
var nowD=nowDate1.getFullYear()+"/"+(nowDate1.getMonth()+1)+"/"+nowDate1.getDate()+" "+nowDate1.getHours()+":"+ nowDate1.getMinutes()+":"+ nowDate1.getSeconds();
addCookie('logDate',nowD,0);//重新存一遍新登陆时间
}
}
function delCookie(name)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}