Работа с 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>
К огавлению
|