Работа с Cookies
Работа с Cookies
У кого-нибудь есть универсальный код работы с subj (функции типа setcookie, getcookie, killcookie)
From: Evgenij Koronin <koronin@yahoo.com>
//--------------------------------------------------------------------- // Function to return the value of the cookie specified by "name". // Parameter: // name String object containing the cookie name. // Return: String object containing the cookie value, or null if // the cookie does not exist. //--------------------------------------------------------------------- function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } //--------------------------------------------------------------------- // Function to get a cookie. //--------------------------------------------------------------------- function getCookieVal( offset ) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } //--------------------------------------------------------------------- // Function to set a cookie. //--------------------------------------------------------------------- function SetCookie( name, value ) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } //--------------------------------------------------------------------- // Function to delete a cookie. (Sets expiration date) // name - String object containing the cookie name //--------------------------------------------------------------------- function DeleteCookie (name) { var exp = new Date(); var cval = GetCookie (name); exp.setTime (exp.getTime() - 1); // This cookie is history document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); }
From : Vitaly Vasilchuk (2:5020/400)
<script language="JavaScript"> <!-- // разобрать значение ключа function extractCookieValue(val) if ((endOfCookie = document.cookie.indexOf(";", val)) == -1) endOfCookie = document.cookie.length; } return unescape(document.cookie.substring(val, endOfCookie)) ; } // чтение ключа function ReadCookie(cookiename) { var numOfCookies = document.cookie.length; var nameOfCookie = cookiename + "="; var cookieLen = nameOfCookie.length; var x = 0 ; while (x <= numOfCookies) { var y = (x + cookieLen); if (document.cookie.substring(x, y) == nameOfCookie) return (extractCookieValue(y)); x = document.cookie.indexOf(" ", x) + 1; if (x == 0) break; } return ""; } // создание ключа // для удаления - expiredays = -1 function createCookie(name, value, expiredays) var todayDate = new Date(); todayDate.setDate(todayDate.getDate() + expiredays); document.cookie = name + "=" + value + "; expires=" + todayDate.toGMTString() + ";" } // пример загрузки function LoadCookies() { document.forms[0].UserName.value=ReadCookie("UserName"); } // пример сохранения function SaveCookies() { createCookie("UserName", document.forms[0].UserName.value, 30); } //--> </script>