КАТЕГОРИИ: Архитектура-(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; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |