Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 325; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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