- •1. Основні поняття
- •1.1. Сім варіацій на тему "Hello, world! "
- •1.1.1. Варіація перша: сама проста
- •1.1.2. Варіація друга: із секретним вихідним текстом
- •1.1.3. Варіація третя: із переменной і функціями
- •1.1.4. Варіація четверта: створення сторінки "на літу"
- •1.1.5. Варіація п'ята: із діалоговою панеллю
- •1.1.6. Варіація шоста: опрацювання події
- •1.1.7. Варіація сьома: із визначенням типу браузера
- •1.2. Перемінні в JavaScript
- •1.2.1. Оголошення перемінних
- •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.2. Записна книжка Cookies Notepad
У такому прикладі cookie застосована для збереження довільного тексту, набраного користувачем у многострочном вікні редагування.
При першому завантаженні документа HTML із записною книжкою вікно редагування залишається порожнім. Можна набрати тут будь-який текст і записати його в cookie, натиснувши кнопку Store text. Якщо тепер закрити документ HTML і відчинити його знову, набраний раніше текст з'явиться у вікні редагування.
Для того щоб видалити текст і cookie, достатньо натиснути кнопку Clear text. Вихідний текст документа HTML із записною книжкою Cookies Notepad поданий у листинге 7.2.
Листинг 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.
~~localhttps://studfile.net/E:\JavaScript\Source\chapter7\Notebook\
0
642302464
29173566
2120102016
29171554
*
На самому початку файла очевидно ім'я MyText параметра cookie. На таких рядках до рядка ~~1осаl~~ розташоване значення параметра MyText. відповідному тексту, показаному на мал. 7.4.
Слідом за рядком ~~local~~ йде локальна адреса URL документа й інші параметри cookies, такі, як дата, по досягненні якої браузер видалить cookie.
Якщо видалити файл Notebook\ і потім відчинити документ HTML, многострочное вікно редагування буде порожнім. Видалення цього файла видаляє і розташоване в ньому cookie.
