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

相关问题