- •1. Основні поняття
- •1.1. Сім варіацій на тему "Hello, world! "
- •1.1.1. Варіація перша: сама проста
- •1.1.2. Варіація друга: із секретним вихідним текстом
- •1.1.3. Варіація третя: із переменной і функціями
- •1.1.4. Варіація четверта: створення сторінки "на літу"
- •1.1.5. Варіація п'ята: із діалоговою панеллю
- •1.1.6. Варіація шоста: опрацювання події
- •1.2. Перемінні в JavaScript
- •1.2.1. Оголошення перемінних
- •1.1.7. Варіація сьома: із визначенням типу браузера
- •1.2.2. Присвоєння значення перемінним
- •1.2.3. Типи даних
- •1.2.4. Перетворення типів даних
- •1.3. Оператори мови JavaScript
- •1.3.1. Унарные оператори
- •1.3.2. Бинарные оператори
- •1.3.3. Оператори для роботи з окремими бітами
- •1.3.4. Оператори зсуву
- •1.3.5. Оператори відношення
- •1.3.6. Логічні оператори
- •1.3.7. Оператор присвоювання
- •1.3.8. Умовні оператори
- •1.3.9. Оператори циклу
- •1.3.10. Інші оператори
- •1.3.11. Старшинство операторів JavaScript
- •1.3.12. Функції в мові сценаріїв JavaScript
- •1.4. Приклади використання операторів циклу
- •2. Класи і об'єкти
- •2.1. Три типи об'єктів «JavaScript
- •2.1.1. Умонтовані об'єкти
- •2.1.2. Об'єкти браузера
- •2.1.3. Об'єкти на базі класів, утворюваних програмістом
- •2.2. Масиви в JavaScript
- •2.3.1. Властивості об'єкта window
- •2.3.2. Методи об'єкта window
- •2.4. Сценарії, що працюють з об'єктами window
- •2.4.1. Як закрити вікно браузера
- •2.4.2. Открываем нове окно
- •2.4.3. Текст , що біжить , у рядку стани браузера
- •2.4.4. Обмеження часу реакції користувача
- •2.4.5. Завантаження документа html у вікно браузера
- •2.5.1. Властивості об'єкта document
- •2.5.2. Методи об'єкта document
- •2.5.3. Колірне оформлення документа
- •2.5.4. Посилання і мітки в документі
- •2.6. Умонтований клас Math
- •2.6.1. Властивості
- •2.6.2. Методи
- •2.7. Умонтований клас Date
- •2.7.1. Конструктори класу Date
- •2.8. Умонтовані функції
- •2.9. Плавна зміна цвіту фона документа html
- •3. Робота з формами
- •3.1. Ієрархія об'єктів у формах
- •3.2. Форма і її властивості
- •3.2.2. Властивості об'єкта form
- •3.3. Об'єкти, що входять до складу форм
- •3.3.1. Кнопка button
- •3.3.2. Перемикач checkbox
- •3.3.3. Перемикач radio
- •3.3.4. Приклад форми з перемикачами
- •3.3.5. Список select
- •3.3.6. Приклади сценаріїв, що працюють із списками
- •3.3.7. Однострочное поле text
- •3.3.8. Перевірка анкети
- •3.3.9. Многострочное поле textarea
- •3.3.10. Приклад сценарію, що заповнює поле textarea
- •3.3.11. Однострочное поле password
- •3.3.12. Запровадження ідентифікатора і пароля
- •3.4. Перевірка заповнення форми
- •3.5. Шестнадцатеричный калькулятор
- •3.3.6. Електронні часи
- •4. Фреймы
- •4.1. Файл опису фреймов
- •4.2. Взаємодія між фреймами
- •4.2.1. Десятично-шестнадцатеричный перетворювач
- •4.2.2. Відображення декількох документів html
- •5. Растровые зображення
- •5.1. Растровое зображення як об'єкт
- •5.2. Динамічна заміна растровых зображень
- •5.2.1. Зміна зовнішнього вигляду графічних посилань
- •5.2.2. Створення анімаційних зображень
- •5.2.3. Чекання завантаження всіх зображень
- •6. Взаємодія з аплетами java
- •6.1. Вбудовування аплета Java у документ html
- •6.2. Виклик методів аплета Java із сценарію JavaScript
- •6.3. Доступ до полів аплета Java із сценарію JavaScript
- •6.4. Динамічне завантаження аплетов Java
- •7. Застосування cookie
- •7.1. Виконання основних операцій із cookie
- •7.1.1. Створення cookie
- •7.1.2. Одержання значення cookie
- •7.1.3. Зміна значення параметра cookie
- •7.1.4. Видалення cookie
- •7.1.5. Обмеження на використання cookie
- •7.2. Декілька прикладів використання cookie
- •7.2.1. Фіксація повторних провідин сторінки
- •7.2.2. Записна книжка Cookies Notepad
- •7.2.3. Настроювання параметрів документа html
- •7.2.5. Одержання cookie розширенням серверу Web
- •7.2.6. Лічильник провідин на базі cookie і програми cgi
- •7.3. Настроювання браузера для роботи з cookie
7.2.3. Настроювання параметрів документа html
Третій приклад демонструє, як можна використовувати cookie для настроювання користувачем параметрів документа HTML із двома кнопками і перемикачем, що має залежну фіксацію.
Якщо натиснути верхню кнопку, то у вікні браузера з'явиться документ HTML, створений динамічно сценарієм JavaScript.
За допомогою перемикачів можна вибрати один із чотирьох цвітів фона документа. Обране значення запам'ятовується в cookie. Для того щоб повернутися до цвіту, прийнятому по умовчанню, у документі HTML потрібно натиснути нижню кнопку.
При наступних провідинах зовнішній вигляд документа зміниться. Його фон будет мати такий цвіт, який був обраний за допомогою перемикачів.
Вихідний текст документа HTML приведений у листинге 7.3.
Листинг 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 установлює всі органи керування форми у вихідний стан.
