2011-12-19 42 views
3

我用下面的代碼爲我的set和get餅乾:cookie不會工作,返回undefined

$.setCookie = function (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; 
}; 
$.getCookie = function (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); 
     } 
    } 
}; 

然後,我只是創建了兩個測試click功能2按鈕:

$('#quick-true').click(function(){ 
$.setCookie('quick-status', true, 365); 
var get = $.getCookie('quick-status'); 
alert('Status: '+get); 
}); 
$('#quick-false').click(function(){ 
$.setCookie('quick-status', false, 365); 
var get = $.getCookie('quick-status'); 
alert('Status: '+get) 
}); 

但是,當點擊#quick-true#quick-false警報說Status: undefined
任何人都可以幫我解釋爲什麼會發生這種情況。我對Cookies非常瞭解,並且與他們一起工作了很多,但這次我迷了路。

回答

0

您的代碼對我來說看起來不錯,但要確保我創建了一個測試HERE,並且它按照我的預期工作。 除了您發佈的代碼可能導致問題之外,可能還有其他內容,正是很難說的。

+0

謝謝。那麼,我試圖讓cookie不需要託管網站就可以工作。所以我試圖得到cookie來處理:'file:/// C:/Users/Shawn/Desktop/project.html?page = index'。但它不能這樣工作。所以一旦我將它託管到'x10'就行了。感謝你的回答。 – Shawn31313 2011-12-26 20:07:18