سلام
در کد اول
خط 3 : متغییرهای i,x,y,ARRcookies تعریف شده اند که در متغییر ARRcookies کوکی های آدرس فعلی (بصورت آرایه) قرار داده می شود.
خط 4 : یک حلقه که به تعداد عناصر آرایه ی ARRcookies چرخ می زند
خط 6 : در اولین عنصر آرایه ( اولین کوکی ) ، مقدار قبل از "=" در متغییر x قرار داده می شود ( نام کوکی )
خط 7 : در اولین عنصر آرایه ، مقدار بعد از "=" در متغییر y قرار داده می شود ( مقدار کوکی )
خط 8 : فضای خالی اول و آخر نام کوکی ( متغییر x ) حذف می شود
خط 9 : اگر نام کوکی ( ورودی تابع ) برابر با متغییر x بود ، مقدار کوکی ( متغییر y ) بصورت decode شده بازگشت داده می شود و اجرای دستورات به پایان می رسد
* اگر هیچ مقداری در شرط قبل یافت نشود ، مقدار undefined مقدار بازگشی از این تابع خواهد بود
در کد دوم
خط 3 : تاریخ فعلی سیستم در متغییر exdate ذخیره می شود
خط 4 : تاریخ موجود در متغییر exdate به اندازه ی exdays به جلو تنظیم می شود
خط 5 : مقدار encode شده ی متغییر value با ( اگر exdays نال بود ، "" و اگر نال نبود ، جمع رشته ی "; expires=" با مقدار exdate در فرمت UTC ) جمع می شود و در متغییر c_value قرار داده می شود
خط 6 : مقدار متغییر c_name با "=" با c_name جمع می شود و به عنوان یک کوکی به عنوان کوکیِ آدرس فعلی اضافه می شود
کد فوق زیاد صحیح و کامل نیست.
بهتر هست از این کلاس استفاده کنید :
var allCookies = {
getItem: function (sKey) {
if (!sKey || !this.hasItem(sKey)) { return null; }
return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
},
setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return; }
var sExpires = "";
if (vEnd) {
switch (vEnd.constructor) {
case Number:
sExpires = vEnd === Infinity ? "; expires=Tue, 19 Jan 2038 03:14:07 GMT" : "; max-age=" + vEnd;
break;
case String:
sExpires = "; expires=" + vEnd;
break;
case Date:
sExpires = "; expires=" + vEnd.toGMTString();
break;
}
}
document.cookie = escape(sKey) + "=" + escape(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
},
removeItem: function (sKey, sPath) {
if (!sKey || !this.hasItem(sKey)) { return; }
document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sPath ? "; path=" + sPath : "");
},
hasItem: function (sKey) {
return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
},
keys: /* optional method: you can safely remove it! */ function () {
var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = unescape(aKeys[nIdx]); }
return aKeys;
}
};