2012-08-09 85 views
1

我試圖做一個重定向,如果存在一個cookie,它在Chrome和Firefox上工作,但它不在Opera,IE和Safari上。setInterval或window.location與Opera,IE和Safari無法正常工作

function listenCookieChange() { 
    var intervalHolder = setInterval(function() { 
    if(getCookie('foo')){ 
     clearInterval(intervalHolder); 

     window.location.href = 'http://XXXXXXXXXXXXXX/inscription2.php'; 
    } 
}, 100); 
} 
listenCookieChange(); 

Cookie在瀏覽器上設置,所以問題不是來自該部分。

在此先感謝

編輯:這是對的getCookie

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); 
     } 
    } 
} 
+0

你可以添加getCookie()的代碼嗎? – 2012-08-09 17:34:34

回答

0

代碼找不到任何過錯。已經在IE7-IE9和Opera 10-11上測試過你的腳本。

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 listenCookieChange() { 
    var intervalHolder = setInterval(function() { 
     if (getCookie('foo')) { 
      clearInterval(intervalHolder); 

      //window.location.href = 'http://XXXXXXXXXXXXXX/inscription2.php'; 
      alert('true'); 
     } 
    }, 100); 
} 
listenCookieChange(); 

document.cookie = 'foo = true';​ 
+0

看起來這個問題只發生在PHP cookies上。我會更多地關注它。謝謝你的回答幫助了我。 – Lamonde 2012-08-13 18:03:21

相關問題