2012-05-17 11 views
18

मेरे पास कुकी के नाम, मूल्य और समाप्ति (दिनों में) में गुजरने वाली कुकी बनाने के लिए एक फ़ंक्शन है।इस कुकी को कभी भी समाप्त करने के लिए सेट करें

यहाँ समारोह है:

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; 
} 

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

http://stackoverflow.com/a/532660/1793718 का डुप्पी – Lucky

उत्तर

10

परिवर्तनीय exdays यह कुकी कितनी देर तक समाप्त हो जाती है, बस उस कार्य को अपने फ़ंक्शन कॉल में कुछ हज़ार दिनों तक सेट करें।

setCookie('cookiename', 'cookievalue', 10000); //expires in 10k days 
28

never expire पर सेट करने का कोई तरीका नहीं है। यह जावास्क्रिप्ट सीमा नहीं है, यह कुकी http://www.faqs.org/rfcs/rfc2965.html के विनिर्देश का हिस्सा नहीं है।

आप भविष्य में बहुत दूर तक सेट कर सकते हैं। उदाहरण के लिए अब इसे 20years के लिए सेट करने के लिए setCookie20*365exdays पैरामीटर के रूप में कॉल करें क्योंकि setCookie फ़ंक्शन अपेक्षा करता है कि यह समाप्त होने से कितने दिन पहले।

setCookie('cookiename','cookie_val',20*365); 
संबंधित मुद्दे