应用场景:加载jsp后需要循环(指定间隔时间)执行的任务。我这个是用户登录后,浏览器又打开一个页面然后切换登陆用户,虽然cookie里面的数据改变了,第一个打开的浏览器显示的用户还是原来登陆的用户,并没有自动刷新。正常情况:浏览器又打开一个页面然后切换登陆用户登陆以后,刚开始打开的浏览器登录用户名也要改变(因为两个页面使用的是同一cookie)。
代码:
/**
*
* 页面加载后,将获取到用户名放入cookie中,
* 设置间隔XXXX毫秒执行一次指定函数。
*/
window.οnlοad=setUserCookie;
function setUserCookie(){
var staffName = "";
if(navigator.appName.indexOf("Explorer")>-1){ //判断是否为IE浏览器
var staffName=window.parent.document.getElementById('topStaffName').innerHTML;
}else{
var staffName=window.parent.document.getElementById('topStaffName').innerText;
}
$.cookie('topStaffName', staffName); //将用户名放入cookie里面,‘topStaffName’可改变,不过存入可去除名称必须一样(其实就是自定义的一个map元素)
var getUser=window.setInterval("getUserCookie()",3000);
}
/**
*
* 将cookie中用户名取出与页面用户名作对比,
* 不相同就刷新页面。
*/
function getUserCookie(){
var strCookie = document.cookie;
var arrCookie = strCookie.split(";");
if(navigator.appName.indexOf("Explorer")>-1){
var text=window.parent.document.getElementById('topStaffName').innerHTML;
}else{
var text=window.parent.document.getElementById('topStaffName').innerText;
}
var cookieStaffName = $.cookie('topStaffName');
if(text==null || text=="" || text!=cookieStaffName){
$('#topStaffName').text(cookieStaffName);
location.reload();//刷新
}
}
ke