应用场景:加载jsp后需要循环(指定间隔时间)执行的任务。我这个是用户登录后,浏览器又打开一个页面然后切换登陆用户,虽然cookie里面的数据改变了,第一个打开的浏览器显示的用户还是原来登陆的用户,并没有自动刷新。正常情况:浏览器又打开一个页面然后切换登陆用户登陆以后,刚开始打开的浏览器登录用户名也要改变(因为两个页面使用的是同一cookie)。
代码:
/** * * 页面加载后,将获取到用户名放入cookie中, * 设置间隔XXXX毫秒执行一次指定函数。 */ window.onload=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
新闻热点
疑难解答