КАТЕГОРИИ: Архитектура-(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.3. Файл chapter7/CustomPage/CustomPage. html
<HTML> <HEAD> <ПОЗНАЧКА HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1251"> <TITLE>Customize your page</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var szColor="White"; 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 + "=" + szValue + "; expires=" + dtExpiryDate; } function findCookie(szName) { var i = 0; var nStartPosition = 0; var nEndPosition = 0; var szCookieString = document.cookies; 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 ""; } function removeCookie(szName) { var dtExpires = new Date(); dtExpires.setTime(dtExpires.getTime() - 1); var szVaiue = findCookie(szName); document.cookie = szName + "=" + szValue + "; expires=" + dtExpires.toGMTString(); } function btnGo() { if(findCookie("Count") == "") { addCookie("Count","0",10); addCookie("bgColor",szColor,10); document.write("<Н2>Ласкаво просимо!</Н2>"); document.write("<Р>Ви можете настроїти цвіт фона цей"); document.write("сторінки за допомогою перемикачів,"); document.write("розташованих на головній сторінці."); document.write("<Р>Настроювання будуть використані, коли ви"); document.write ("відвідайте цю сторінку наступного разу."); } else { var szCnt = findCookie("Count"); var i= 0; if(szCnt!= "") { i = szCnt; i++; szCnt = i.toString(); addCookie("Count", szCnt, 10); } document.write("<Н2>Ради бачити вас знову!</Н2>"); document.write("Ви відвідали цю сторінку в " + szCnt.bold() + " разом."); document.bgColor=findCookie("bgColor"); } } function chkRadio(form, value) { szColor = value; addCookie("bgColor", szColor, 10); } function setDefault(form) { removeCookie('Count'); szColor="White"; } //--> </SCRIPT> </HEAD> <BODY BGCOLOR=white> <Н1>Відвідайте вашу персональну сторінку</Н1> <FORM NAME="TestForm"> <P> <INPUT TYPE="button" VАLUЕ="Перехід на сторінку" onClick="btnGo();"> <P> <HR> <Р>Настроювання параметрів персональної сторінки <Р><У>Цвіт фона:</У> <P><INPUT TYPE="radio" NAME="Color" CHECKED VALUE="White" onClick="if(this.checked) {chkRadio(this.form,this.value);}"> Белый <BR><INPUT TYPE="radio" NAME="Color" VALUE="Yellow" onClick="if(this.checked) {chkRadio(this.form,this.value);}"> Жовтий <BR><INPUT TYPE=" radio" NAME="Color" VALUE="Lime" onClick="if(this. checked) {chkRadio(this. form,this. value);}"> Зелений <BR><INPUT TYPE="radio" NAME "Color" VALUE="Fuchsia" onClick="if(this.checked) {chkRadio(this.form,this.value);}"> Малиновий <P> <INPUT TYPE="reset" VALUE="Параметри по умовчанню" onClick="setDefault(this.form);"> </FORM> </BODY> </HTML>
Крім функцій addCookie, fmdCookie і removeCookie, призначених для роботи з cookie, у сценарії визначена перемінна szColor. призначена для збереження обраного користувачем цвіту фона, a також функції btnGo, chkRadio і setDefault. Функція btnGo насамперед перевіряє наявність параметра cookie з ім'ям Count. Якщо такого параметра немає, сценарій вважає, що користувач переглядає цей документ у перший разом. У цьому випадку функція btnGo добавляє два параметри cookie з іменами Count і bgColor:
addCookie ("Count","0", 10); addCookie("bgColor", szColor,10);
Перший із них призначений для збереження лічильника провідинах, а другий - для збереження цвіту фона. Далі функція btnGo формує документ HTML із запрошенням для користувача, що переглядає документ у перший разом, і завершує свою роботу. У тому випадку, коли відразу після виклику функція btnGo знайшла параметр cookie з ім'ям Count і одержала його значення, це значення збільшується на одиницю і записується обернено. Крім того, воно відображається в тексті документа:
document.write("<Н2>Ради бачити вас знову! </Н2>"); document. write("Ви відвідали цю сторінку в " + szCnt. bold()+" разом. ");
Потім функція btnGo установлює цвіт фона сформованого документа HTML у відповідності зі значенням, витягнутим із параметра cookie з ім'ям bgColor:
document. bgColor=findCookie ("bgColor");
Функція chkRadio визивається, коли користувач включає один із перемикачів вибору цвіту:
function chkRadio(form,value) { szColor = value; addCookie("bgColor",szColor,10); }
Ця функція записує значення обраного цвіту в перемінну szColor, а також у параметр cookie з ім'ям bgColor. Нарешті, функція setDefault видаляє параметр cookie з ім'ям Count і встановлює в перемінної szColor білий цвіт фона, прийнятий по умовчанню:
function setDefault(form) removeCookie('Count'); szColor="White";
Ця функція визивається, коли користувач натискає кнопку з надпиляю "Параметри по умовчанню":
<input TYPE="reset" VALUE="Параметри по умовчанню" onClick="setDefault(this. form);">
Дана кнопка має тип reset. Коли користувач натискає на її, у формі включається перемикач, що задає білий цвіт фона. Це відбувається тому, що зазначений перемикач визначений із параметром CHECKED, а кнопка типу reset установлює всі органи керування форми у вихідний стан. 7.2.5. Одержання cookie розширенням серверу Web У цьому поділі приведений приклад документа HTML, що створює cookie, а також вихідні тексти розширення серверу ISAPI, що відображає на динамічно утворюваній сторінці заголовки HTTP цього документа. Коли браузер створює cookie, розширення серверу одержує заголовок НТТР_СООКIЕ і відображає його. Документ аналогічний описаному раніше в поділі "Записна книжка Cookies Notepad". Додатково в документі розміщена кнопка Send. За допомогою цієї кнопки уміст вікна редагування і заголовок HTTP_COOKIES передаються розширенню ISAPI серверу Web. Вихідний текст документа HTML ви знайдете в листинге 7.4.
Дата добавления: 2014-11-29; Просмотров: 348; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |