Цель этой функции - попытаться получить значение cookie из файлов cookie страницы. Если файлы cookie не установлены, функция попытается установить значение по умолчанию "w_wid=1;path=/"
и вернуть 1
. Если файлы cookie не поддерживаются, будет возвращено полуслучайное (основанное на времени) значение от 1 до 20, и файл cookie не будет установлен. Если куки установлены, функция попытается получить значение, соответствующее параметру имени (wid02
). Если имя не найдено, функция вернет null
, в противном случае возвращается значение.
Функция, аннотированная строкой:
function w_cookie_wid(wid02) {
//if there are no cookies for this page
if (!document.cookie) {
//set a cookie value associated with the root
document.cookie = "w_wid=1;path=/";
//if there still are no cookies (not supported/allowed)
if (!document.cookie) {
//make a new date representing the current time
var w_date = new Date();
//return a number between 1 and 20
//based on the current time
return (w_date.getSeconds() % 20 + 1);
}
//return 1 if the cookie set was successful
else return 2 - 1;
}
//create the name portion for a cookie value
var prefix = wid02 + "=";
//check to see if that value is already set,
//but not as the first item
var begin = document.cookie.indexOf("; " + prefix);
//if it isn't
if (begin == -1) {
//check to see if it is set as the first item
begin = document.cookie.indexOf(prefix);
//if it isn't set (at all)
if (begin != 0) {
//return a null value
return null;
}
}
//if it IS set somewhere
else {
//set begin to be the index of beginning
//of the name/value pair
begin += 2;
}
//get the index of the first semi-colon after
//the beginning of the name/value
var end = document.cookie.indexOf(";", begin);
//if there isn't one
if (end == -1) {
//set the end index as the length of the cookie(s)
end = document.cookie.length;
}
//return the cookie name/value pair string
return unescape(document.cookie.substring(begin + prefix.length, end));
}
Пожалуйста, не проси нас больше делать уроки.