應用場景:加載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
新聞熱點
疑難解答