- •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
3.3.4. Приклад форми з перемикачами
У поділі приведений вихідний текст документа HTML із сценарієм, призначеним для динамічного створення нової сторінки за допомогою сценарію JavaScript. Параметри сторінки визначаються станом перемикачів типу checkbox і radio, розташованих у цьому документі.
Документ містить одну форму, у якій є три перемикачі з незалежною фіксацією типу checkbox (розташовані в групі Page elements), три перемикачі з залежною фіксацією (утворюючу групу Text color) і дві кнопки - Create Page і Reset.
Якщо включений перемикач Show title, утворюваний сценарієм JavaScript, документ HTML буде постачений заголовком. При вмиканні перемикача Show horizontal lines інформація про стан перемикачів, відображуваний у документі, буде виділена поверх і знизу горизонтальними розділювальними лініями.
Перемикач Table view впливає на засіб відображення інформації. Якщо він включений, інформація буде показана в табличному виді, а якщо виключений - у виді списку.
Перемикачі з залежною фіксацією групи Text color, розташовані у вихідному документі HTML, задають цвіт рядків при відображенні інформації у виді списку або цвіт назв перемикачів при табличному відображенні.
У нижній частині форми знаходяться дві кнопки з написами Create Page і Reset. Якщо натиснути на першу з цих кнопок, буде викликана функція JavaScript, що визначить поточний стан перемикачів і сформує новий документ HTML. Цей документ з'явиться у вікні браузера замість вихідного. За допомогою кнопки Reset можна встановити початковий стан перемикачів.
Текст документа HTML із сценарієм, що виконує всі описані вище дії, подана в листинге 3.2.
Листинг 3.2. Файл chapter3/checkradio/checkradio. html
<HTML>
<HEAD>
<SCRIPT>
<!--
function resetRCHBox()
{
bTitle=false;
bHorzLine=false;
bTable=false;
szColor="Red";
}
function chkRadio(form,value)
{
szColor=value;
}
function btnClick(form)
{
var szTxt="";
document.write("<HEAD></HEAD><B0DY>");
if(bTltle)
document.write("<H1 >Switches Checkbox and Radio></Hl>");
if(bHorzLine)
document.write("<HR>");
if(bTable)
{
document.write("<TABLE>");
szTxt="" + bTitle;
document.write("<TR><TD><FONT COLOR=" + szColor
+ ">Title:</TD><TD>" + szTxt.bold() + "</TD></TR>");
szTxt=" " + bHorzLine;
document.write("<TR><TD><FONT COLOR=" + szColor + ">HorzLine:</TD><TD>" + szTxt.bold() + "</TD></TR>");
szTxt=" " + bTable;
document. write("<TR><TD><FONT COLOR"" + szColor + ">Table:</TD><TD>" + szTxt. bold() + "</TD></TR>");
document. write("<TR><TD><FONT COLOR=" + szColor + ">Color:</TD><TD>" + szColor. bold() + "</TD></TR>");
document.write("</TABLE>");
}
else
{
document.write("<FONT COLOR=" + szColor + ">");
szTxt="" + bTitle;
document.write("<BR>Title: " + szTxt.bold());
szTxt=" " + bHorzLine;
document.write("<BR>HorzLine: " + szTxt.bold());
szTxt=" " + bTable;
document.write("<BR>Table : " + szTxt.bold());
document.write("<BR>Color: " + szColor.bold());
document.write("</FONT>");
}
if(bHorzLine)
document.write("<HR>");
document.write("</BODY>");
}
//-->
</SCRIPT>
<ТIТLЕ>Перемикачі checkbox і radio</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!--
var bTitle=false;
var bHorzLine=false;
var bTable=false;
var szColor="Red" ;
//-->
</SCRIPT>
<FORM NAME="myform"> <B>Page elements:</B>
<P><INPUT TYPE="checkbox" NAME="chkTitle"
onClick="if(this.checked) {bTitle=true;}"> Show title
<BR><INPUT TYPE="checkbox" NAME="HorzLine"
onClick="if (this. checked) {bHorzLine=true;} "> Show horizontal lines
<BR><INPUT TYPE="checkbox" NAME="Table"
onClick="if(this.checked) {bTable=true;}"> Table view
<P><B>Text color :</B>
<P><INPUT TYPE="radio" NAME="Color" CHECKED VALUE="Red"
onClick="if(this.checked)
{chkRadio (this. form, this. value);}"> Red
<BR><INPUT TYPE="radio" NAME="Color" VALUE="Green"
onClick="if(this. checked)
{chkRadio(this.form, this.value);}"> Green
<BR><INPUT TYPE="radio" NAME="Color" VALUE="Blue"
onClick="if(this.checked)
{chkRadio(this.form, this.value);)"> Blue
<TABLE>
<TR><TD><INPUT TYPE="button" NAME="btn" VALUE="Create Page "
onClick="btnClick (this.form);"></TD>
<TD><INPUT TYPE="reset" NAME="resetBtn" VALUE="Reset"
onClick=" reset RCHBox();"></TD></TR>
</TABLE>
</FORM>
</BODY>
</HTML>
У області заголовка документа HTML визначені три функції з іменами resetRCHBox, chkRadio і btnClick.
Перша з цих функцій призначена для ініціалізації перемінних, у яких зберігається поточний стан перемикачів:
function resetRCHBox()
{
bTitle=false;
bHorzLine=false;
bTable=false;
szColor="Red";
}
Функція resetRCHBox визивається в той момент, коли користувач натискає у вихідному документі кнопку Reset. Вона встановлює значення чотирьох перемінних.
Перемінні bTitle, bHorzLine і bTable відбивають стан - перемикачів із незалежною фіксацією відповідно Show title, Show horizontal lines і Table view. Якщо перемикач включений, у відповідної перемінної зберігається значення true, якщо виключений - false.
У перемінної szColor знаходиться цвіт тексту, обраний за допомогою групи перемикачів із залежною фіксацією Text color.
Початковий стан переменных, що задається функцією resetRCHBox, відповідає початковому стану перемикачів відразу після завантаження вихідного документа HTML у вікно браузера.
Для того щоб забезпечити вызов функції resetRCHBox при натисканні на кнопку Reset, у визначенні цієї кнопки заданий оброблювач події onClick, як це показано нижче:
<INPUT TYPE="reset" NAME="resetBtn" VALUE="Reset"
onClick="resetRCHBox();">
Опрацювання події полягає в простому виклику функції. Тепер необхідно зайнятися перемикачами з залежною фіксацією. Ці перемикачі визначені у формі в такий спосіб:
<INPUT TYPE="radio" NAME="Color" CHECKED VALUE="Red"
onClick="if(this.checked)
{chkRadio(this.form,this.value);}"> Red
<BR><INPUT TYPE="radio" NAME="Color" VALUE="Green"
onCli ck="if(this.checked)
{chkRadio(this.form, this.value);}"> Green
</BR><INPUT TYPE="radio" NAME="Color" VALUE="Blue"
onClick="if (this. checked)
{chkRadio(this. form,this. value);}"> Blue
Коли користувач змінює стан перемикача, роблячи по ньому щиголь лівою клавішею миші, визивається оброблювач події onClick. для всіх кнопок цей оброблювач виглядає однаково:
if(this.checked)
chkRadio(this. form, this. value);
}
Насамперед, оброблювач перевіряє стан перемикача, викликаючи для цього метод checked. Посилання на об'єкт, для якого визивається цей метод, тобто на перемикач, виконується за допомогою ключового слова this.
У тому випадку, коли перемикач включений, оброблювач викликає функцію chkRadio, визначену в заголовку документа в такий спосіб:
function chkRadio(form, value)
{
SzColor = value;
}
Хоча передаються функції два параметри (посилання на форму, що містить перемикач, і значення параметра VALUE поточного перемикача), використовується тільки другий параметр. Значення цього параметра, що визначать цвіт тексту, зберігається в перемінної szColor.
Робота з перемикачами типу checkbox виконується трохи простіше:
<INPUT TYPE="checkbox" NAME="chkTitle"
onClick="if(this.checked) {bTitle=true;}"> Show title
<BR><INPUT TYPE="checkbox" NAME="HorzLine"
onClick="if(this. checked) {bHorzLine=true;}"> Show horizontal lines
<br><input TYPE="checkbox" NAME="Table"
onClick="if(this. checked) {bTable=true;}"> Table view
Коли користувач включає перемикач, оброблювач події on-Click встановлює в стан true відповідну перемінну. Наприклад, при зміні стани перемикача Show title виконуються такі дії:
if(this.checked)
{
btitie=true;
}
Останній орган керування - це кнопка Create Page. Ця кнопка запускає процес створення нового документа HTML. Для неї також визначений оброблювач події onClick:
<INPUT TYPE="button" NAME="btn" VALUE="Create Page"
onClick="btnClick(this. form);">
Цей оброблювач викликає функцію btnClick, передаючи їй у якості параметра посилання на форму.
Функція btnClick визначена в області заголовка документа HTML, вихідний текст якого поданий у листинге 3.2.
Усередині цієї функції визначена робоча текстова перемінна szTxt із присвоєнням їй значення порожнього рядка:
var szTxt="";
Коли функція btnClick одержує керування, насамперед вона формує порожню область заголовка документа HTML:
document. write ("<HEAD></HEAD><BODY>");
Далі функція аналізує вміст перемінної bTitle:
if(bTitle)
document. write("<Hl>Switches Checkbox and Radio</Hl>");
Якщо перед тим як натиснути кнопку Create Page користувач уключив перемикач Show title, у перемінної bTitle буде знаходитися значення true. У цьому випадку сценарій постачить формований документ заголовком "Switches Checkbox and Radio", оформивши його стилем <Н1>.
Аналогічною уявою аналізується вміст перемінної bHorzLine:
if(bHorzLine)
document. write ("<HR>");
Ця перемінна відбиває стан перемикача Show horizontal lines. Далі функція btnClick аналізує вміст перемінної bTable, відповідальної за засіб відображення інформації про стан перемикачів в утворюваному документі HTML:
if(bTable)
{
...
}
else
{
...
}
Якщо перемикач Table view знаходиться у включеному стані, інформація відображається у виді таблиці.
При формуванні першого стовпчика таблиці цвіт тексту усередині осередку установлюється відповідно до вмісту перемінної szColor:
szTxt="" + bTitle;
document. write ("<tr><td><font COLOR=" + szColor + ">Title:</TD><TD>" + szTxt. bold() + "</TD></TR>");
Ця перемінна береже значення цвіту тексту, установлене групою перемикачів із залежною фіксацією Text color.
Якщо стан перемикачів відображається у виді списку рядків, цвіт тексту встановлюється в такий спосіб:
document. write("<FONT COLOR=" + szColor + ">");
