2011-08-18 64 views
0

我正在檢查,獲取並設置一個cookie來跟蹤上次訪問的頁面。爲了做到這一點,我打電話給javascript onload。問題是當我執行這個js時,它反覆引用。非常像一個即使在鼠標移動。但除了onload之外,我沒有任何其他事件。Javascript window.location被一次又一次地調用IE-8

這裏是我的JS:

<script type='text/javascript'> 
//<![CDATA[ 

window.onload = function(event){   
    var currentPage = window.location.href; 
    var lastVisited = getCookie('udis'); 
    var sessionId= getCookie('udisSession'); 
    if(lastVisited === null || lastVisited === undefined){ 
     setCookie("udis", currentPage, 365); 
     lastVisited = getCookie('udis'); 
    } 
    if(sessionId === null || sessionId === undefined){ 
     setSessionCookie('udisSession'); 
     if(lastVisited !== currentPage){ 
      window.location.href = lastVisited;   
     }   
    } 
    setCookie("udis", currentPage, 365); 
    updateBreadCrumb(); 
} 

    function getCookie(c_name) { 
     var i,x,y,ARRcookies=document.cookie.split(";"); 
     for (i=0;i<ARRcookies.length;i++){ 
      x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
      y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
      x=x.replace(/^\s+|\s+$/g,""); 
      if (x==c_name) { 
       return unescape(y); 
      } 
     } 
    } 
    function setSessionCookie(c_name){ 
    document.cookie=c_name + "=" + 'testSession'+';expires=;path=/'; 
} 

    function setCookie(c_name,value,exdays){ 
     var exdate=new Date(); 
     exdate.setDate(exdate.getDate() + exdays); 
     var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
     document.cookie=c_name + "=" + c_value; 
    } 


//]]> 
</script> 

這上面的代碼flowlessly在Firefox,但在IE 8也導致頁面,一次又一次的調用。

回答

1

這會導致您的頁面被重新加載。

window.location.href=lastVisited 

您應該使用if語句來檢查當前頁是否不相同,然後刷新。像window.location.href != lastVisited

+0

我已經更新了這個問題。任何建議是值得歡迎的! – Rachel