2012-07-26 40 views
0

我正在嘗試檢測特定cookie「abc」的存在。我正在使用的代碼是爲什麼不能使用此javascript工作?

var iterations = 0; 
var interval = setInterval(checkCookie, 1000); 
var cookie=getCookie("abc"); 
function checkCookie() { 
    iterations++;  
    if (iterations >= 3 || cookie !=null || cookie !="") 
     clearInterval(interval); 
    alert("Iteration " + iterations); 
} 

此代碼的唯一問題是它沒有檢測到cookie的存在。 甚至當我更改cookie名稱以一個已經exists.You可以檢查出來這裏http://jsfiddle.net/aMZj3/

+1

如錯誤控制檯所示,沒有函數'getCookie()'。你的意思是'checkCookie()'? – 2012-07-26 20:39:46

+2

我假設'getCookie()'取自http://stackoverflow.com/questions/4003823/javascript-getcookie-functions? – 2012-07-26 20:40:35

+0

事實上,沒有'getCookie'這樣的函數。你必須自己解析['document.cookie'](https://developer.mozilla.org/en/DOM/document.cookie),或者抓一個爲你做這個的庫。 – 2012-07-26 20:40:41

回答

0

只是一個注:據我所知,如果你在域D1下工作,那麼你將無法讀取由其他域D2設置的cookie。這意味着如果cookie由您正在工作的同一個域設置,您將能夠讀取cookie「abc」。

+0

我認爲你可能是對的。如果D2在D1上設置cookie,那麼D1可以讀取cookie嗎? – 2012-07-26 21:49:18

+0

因爲這正是我的廣告公司在我的用戶計算機上設置Cookie的情況 – 2012-07-26 21:51:33

+0

域D2無法爲域D1設置Cookie。您可以將所需信息傳遞給D1,同時從D2重定向到D1。讓D1爲自己設置Cookie。試試這個鏈接: http://stackoverflow.com/questions/6761415/how-to-set-a-cookie-for-another-domain – Somnath 2012-07-27 06:38:14

2

你只是在你的循環前一次打電話的getCookie,要將其移動到checkCookie函數來檢查它的每個迭代。