Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 7.2. Файл chapter7/Notebook/Notebook. html




<HTML>

<HEAD>

<TITLE>Cookies demo</TITLE>

<SCRIPT LANGUAGE="JavaScript">

function addCookie(szName, szValue, dtDaysExpires)

{

var dtExpires = new Date();

var dtExpiryDate = "";

dtExpires.setTime(dtExpires.getTime () + dtDaysExpires * 24 * 60 * 60 * 1000);

dtExpiryDate = dtExpires.toGMTString();

document.cookie = szName + "=" + escape (szValue) + ";

expires = " + dtExpiryDate;

}

function findCookie(szName)

{

var i = 0;

var nStartPosition = 0;

var nEndPosition = 0;

var szCookieString = document. cookie;

var szTemp = "";

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;

szTemp = document.cookie.substring(nStartPosition, nEndPosition);

return unescape(szTemp);

break;

}

i++;

}

return "";

}

function removeCookie(szName)

{

var dtExpires = new Date();

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

var szValue = findCookie(szName);

document.cookie = szName + "=" + szVaiue + "; expires=" + dtExpires.toGMTString();

}

function btnClick()

{

addCookie("MyText",TestForm.Comment.value,10);

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white>

<Hl>Cookies Notepad</Hl>

<FORM NAME="TestForm">

<P><TEXTAREA NAME=" Comment"

ROWS="5" COLS="25" WRAP="physical">

</TEXTAREA>

<P><INPUT TYPE="button" VALUE="Store text" onClick="btnClick();">

<INPUT TYPE="button" VALUE="Clear text"

onClick="removeCookie('MyText');TestForm.Comment.value=''">

</FORM>

<SCRIPT LANGUAGE="JavaScript">

<!--

var szMyText="";

szMyText = findCookie("MyText");

if(szMyText!= "")

{

TestForm.Comment.value = szMyText;

}

//-->

</SCRIPT>

</BODY>

</HTML>

Функція addCookie, використана нами в цьому документі, має одна особливість: перед записом текстового рядка в параметр cookie вона виконує її кодировку у форматі URL, викликаючи для цього функцію escape:

 

document. cookie = szName + "=" + escape(szValue) + ";

expires=" + dtExpiryDate;

 

Це необхідно з тієї причини, що введений у вікні редагування текст може містити прогалини і будь-які інші символи. Аналогічні зміни ми внесли й у функцію findCookie. Ця функція повертає значення, перекодоване в звичайний текст функцією unescape, що виконує дії, обернені стосовно функції escape:

 

SzTemp = document. cookie. substring (nStartPosition, nEndPosition);

return unescape(szTemp);

 

Коли користувач натискає кнопку Store text, визивається функція btnClick:

 

function btnClick()

{

addCookie("MyText", TestForm. Comment. value, 10);

}

 

Ця функція просто записує в параметр cookie з ім'ям MyText текстовий рядок, витягнутий із многострочного поля редагування TestForm. Comment. value.

При видаленні тексту кнопкою Clear text визивається функція removeCookie, що видаляє параметр cookie з ім'ям 'MyText, а також записується порожній рядок у вікно многострочного редагування:

 

<INPUT TYPE="button" VALUE="Clear text"

onClick = "removeCookie('MyText');

TestForm. Comment. value= ' ' ">

 

У самому кінці тіла документа HTML знаходиться невеличкий фрагмент сценарію JavaScript, що запускается відразу після завантаження цього документа:

 

var szMyText="";

SzMyText = findCookie("MyText");

 

if(szMyText!= "")

{

TestForm. Comment. value = szMyText;

}

 

Цей фрагмент намагається одержати значення параметра cookie з ім'ям MyText. Якщо це йому вдасться і функція findCookie повертає непустую рядок, отриманий рядок записується у вікно многострочного поля редагування TestForm. Comment.value.

У результаті відразу після завантаження документа це вікно надається заповненим текстом, збереженим у cookie.

Можливо подивитися системний файл, що береже дані cookie. Для цього треба відчинити каталог Temporary Internet Files, розташований у системному каталозі Microsoft Windows 95 або Microsoft Windows NT. Там повинний бути файл з ім'ям Notebook\. Можна скопіювати цей файл, наприклад, на поверхню робочого столу і відчинити для перегляду будь-яким текстовим редактором. Там - приблизно таке:

 

MyText

This%20is%20sample%20text. %OD%OA%u042D%u0442%u043E%20%u0442%u

0435%u043A%u0441%u0442%2C%20%u043A%u043E%u0442%u043E%u044C%u

44B%u0439%20%u044F%20%u043D%u0430%u0431%u0440%u0430%u043B%20%

u0434%u043B%u044F%20%u043F%u0440%u0438%u043C%u0435%u0440%u043

0. %OD%OA%OD%OA%u0410%u043B%u0435%u043A%u0441%u0430%u043D%u043

4%u0440%20%u0424%u0440%u043E%u043B%u043E%u0432.

~~local~~/E:\JavaScript\Source\chapter7\Notebook\

*

 

На самому початку файла очевидно ім'я MyText параметра cookie. На таких рядках до рядка ~~1осаl~~ розташоване значення параметра MyText. відповідному тексту, показаному на мал. 7.4.

Слідом за рядком ~~local~~ йде локальна адреса URL документа й інші параметри cookies, такі, як дата, по досягненні якої браузер видалить cookie.

Якщо видалити файл Notebook\ і потім відчинити документ HTML, многострочное вікно редагування буде порожнім. Видалення цього файла видаляє і розташоване в ньому cookie.

7.2.3. Настроювання параметрів документа HTML

Третій приклад демонструє, як можна використовувати cookie для настроювання користувачем параметрів документа HTML із двома кнопками і перемикачем, що має залежну фіксацію.

Якщо натиснути верхню кнопку, то у вікні браузера з'явиться документ HTML, створений динамічно сценарієм JavaScript.

За допомогою перемикачів можна вибрати один із чотирьох цвітів фона документа. Обране значення запам'ятовується в cookie. Для того щоб повернутися до цвіту, прийнятому по умовчанню, у документі HTML потрібно натиснути нижню кнопку.

При наступних провідинах зовнішній вигляд документа зміниться. Його фон будет мати такий цвіт, який був обраний за допомогою перемикачів.

Вихідний текст документа HTML приведений у листинге 7.3.

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 342; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.02 сек.