Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови JavaScript.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.04 Mб
Скачать

7.1.2. Одержання значення cookie

Вирішимо таку задачу - визначення значення параметрів cookie.

Ця задача зводиться до простого сканування текстового рядка, отриманої в такий спосіб:

var szCookieString = document. cookie;

У цьому рядку потрібно знайти подстроку "Ім'я==3начение;", а потім витягти отримане значення.

Для полегшення цієї роботи можна скористатися функцією findCookie. Вихідний текст цієї функції приведений нижче:

function findCookie(szName)

{

var i = 0;

var nStartPosition = 0;

var nEndPosition = 0;

var szCookieString = document.cookie;

while(i <= szCookieString.length)

{

nStartPosition = i;

nEndPosition = nStartPosition + szName.length;

if(szCookieString.substring(

nStartPosition, nEndPosition) == szName)

{

nStartPosition = nEndPosition + 1;

nEndPosition = document.cookie.indexOf(";",nStartPosition);

if(nEndPosition < nStartPosition)

nEndPosition = document.cookie.length;

return document.cookie.substring(nStartPosition, nEndPosition);

break;

}

i++;

}

return "";

}

Після витягу рядка з властивості document.cookie і запису цього рядка в перемінну szCookieString функція findCookie організує цикл по всіх символах цього рядка. Умовою завершення циклу є перегляд усіх szCookieString.length символів.

Порівнюючи ім'я параметра з подстрокой, витягнутої з рядка szCookieString за допомогою методу substring, функція findCookie намагається знайти потрібний параметр. Якщо така спроба надається успішної, функція findCookie пропускає символ присвоювання, извлекая значення параметра, обмежене символом "точка з запятой". Це значення повертається функцією findCookie.

Якщо ж пошук надається невдалим, функція findCookie повертає порожній рядок.

Як користуватися функцією findCookie?

По-перше, за допомогою цієї функції можна перевірити, чи встановлене для даного документа cookie із заданим ім'ям

if(findCookie("Visit") == "")

{

// cookie з ім'ям Visit установлене

...

}

else

{

// cookie з ім'ям Visit не встановлене

...

}

Для того щоб записати в текстову переменную значення параметра cookiе з заданим ім'ям, треба зробити таке:

var szVisitValue = findCookie("Visit");

Як очевидно, користуватися функцією findCookie достатньо просто.

7.1.3. Зміна значення параметра cookie

Для зміни значення параметра cookie із заданим ім'ям можна просто викликати функцію addCookie ще разом:

addCookie("Count","0",10);

// Значення параметра Count дорівнює 0

...

addCookie("Count","5",10);

// Значення параметра Count дорівнює 5

Тут спочатку встановлено для параметра Count значення 0, а потім змінене це значення на 5.

7.1.4. Видалення cookie

Самий простий засіб видалити cookie - установити для нього такий час автоматичного видалення, що вже пройшло. Для цього потрібно одержати поточну дату, зменшити її, наприклад, на одну микросекунду, а потім змінити значення document. cookie.

Все це робить функція removeCookie:

function removeCookie(szName)

{

var dtExpires = new Date();

dtExpires.setTime(dtExpires.getTime() - 1);

var szValue = findCookie(szName);

document. cookie var szValue = findCookie(szName);= szName + "=" + szValue + "; expires=" + dtExpires. toGMTString();

}

У останньому рядку цій функції зазначене таке значення параметра expires, що викликає негайне видалення cookies браузером.