- •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.6. Електронні часи
За допомогою сценарію JavaScript і форми можна зробити достатньо складні електронні часи, що будуть показувати не тільки час, але і дату в різноманітних форматах з урахуванням зсуву годинного пояса.
Вихідний текст документа HTML з електронними часами поданий у листинге 3.10.
Листинг 3.10. Файл chapter3/clock/clock. html
<HTML>
<HEAD>
<TITLЕ>Електронні часи</TITLE>
<script language="JavaScript">
<!--
nTimer = 0;
var szCurrentTime = "";
var szCurrentDate = "",
var szTimeZone = "",
var szGMT = "";
var szLocal = "";
function updateClock()
{
var dtDate = new Date();
var nHours = dtDate.getHours();
var nMinutes = dtDate.getMinutes();
var nSeconds = dtDate getSeconds();
szCurrentTime = nHours + ":" + nMinutes + ":" + nSeconds;
szCurrentDate = dtDate.getDate () + "." + dtDate.getMonth() + "." + dtDate.getYear();
szTimeZone = dtDate.getTimezoneOffset()/60;
szGMT = dtDate.toGMTString();
szLocal = dtDate.toLocaleString();
Clock.time.value = szCurrentTime;
Clock.dat.value = szCurrentDate;
Clock.timeZone.value = szTimeZone;
Clock.gmt.value = szGMT;
Clock.loc.value = szLocal;
nTimer = setTimeout("updateClock()", 1000);
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=white>
<Н1>Електронні часи</Н1>
<FORM NAME="Clock">
<TABLE>
<ТR><ТD><У>Дата </B></TD><TD><INPUT TYPE="text"
NAME="dat" SIZE="20"></TD>
</TR>
<ТR><TD><У>Час </B></TD><TD><INPUT TYPE="text"
NAME="time" SIZE="20"></TD>
</TR>
<ТR><ТD><У>Зсув годинного пояса : </B></TD><TR><INPUT TYPE="text"
NAME="timeZone" SIZE="20"></TD>
</TR>
<ТR><ТD><B>Дата GMT : </B></TD><TD><INPUT TYPE="text"
NAME="gmt" SIZE="30"></TD>
</TR>
<ТR><ТD><У>Локальна дата : </b></td><td><input TYPE="text"
NAME="loc" SIZE="30" ></TD>
</TR>
</TABLE>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
updateClock();
//-->
</SCRIPT>
</BODY>
</HTML>
Часи запускаются відразу після завантаження документа HTML у вікно браузера. При цьому керування одержує функція updateClock. Ця функція визначена в заголовку, а її виклик знаходиться наприкінці області тіла документа HTML.
Отримавши керування, функція updateClock створює об'єкт Data для поточної дати, встановленої в комп'ютері:
var dtDate = new Date();
Потім функція визначає три компоненти часу (часи, хвилини і секунди), викликаючи для цього методи getHours, getMinutcs і getSeconds. визначені в класі Date:
var nHours = dtDate.getHours();
var nMinutes = dtDate. getMinutes();
var nSeconds = dtGate. getSeconds();
Отримані в такий спосіб значення комбінуються в текстовому рядку szCurrеntTime:
Надалі час буде записано функцією updalеClock у поле time форми Clock, як це показано нижче:
Рядок поточної дати утворюється в результаті виклику методів getDate, getMonth і getYear:
szCurrentDate = dtDate.getDate() + "." +
dtDate. getMonth() + ". " + dtDate. getYear();
Цей рядок записується в поле dat форми Clock:
Clock. dat. value = szCurrentDate;
Для обчислення зсуву годинного пояса необхідно скористатися методом getTimezoneOffset, що повертає значення в хвилинах:
getTimeZone = dtDate. getTimezoneOffset() / 60;
Для того щоб обчислити зсув у часах, необхідно розділити результат, отриманий від методу getTimezoneOffset, на 60. Обчислений зсув годинного пояса записується в поле timeZone форми Clock:
Clock. timeZone. value = szTimeZone;
Для одержання часу за Гринвічем скористаємося методом toGMTString:
szGMT = dtDate. toGMTString();
Отримане значення буде записано в поле gmt форми Clock:
Clock. gmt. value = szGMT;
І нарешті, локальну дату і час ми визначаємо за допомогою методу toLocaleString:
szLocal = dtDate. toLocaleString();
Результат записується в поле 1ос форми Clock:
Clock. loc. value = szLocal;
Періодичне виконання функції updateClock досягається за допомогою методу setTimeout:
nTimer = setTimeout("updateClock()", 1000);
Тут зазначено, що період відновлення показань часів повинний бути дорівнює 1 с.
