- •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
2.4.3. Текст , що біжить , у рядку стани браузера
Поширена задача - відображення тексту, що біжить, у рядку стани браузера.
Рядок стана звичайно використовується браузерами для відображення різноманітної інформації, наприклад інформації про виконання поточної операції. Для того щоб записати що-небудь у рядок стана, необхідно змінити уміст властивості status об'єкта window вікна браузера. Цю задачу можна вирішити, наприклад, так:
window. status = "Новий рядок";
Для створення ефекту рядка, що біжить, операцію відновлення властивості status необхідно виконувати періодично, отображая текст із зсувом, що змінюється. Проте не варто робити це в циклі, тому що в результаті нормальна робота браузера буде порушена.
У сценарії (листинг 2.5) застосований засіб виконання періодичних процедур, заснований на використанні методу setTimeout, визначеного для об'єкта window. Нагадаємо, що цей метод дозволяє організувати відкладене в часу виконання команди, заданої першим параметром. Час, через який команд буде запущена, указується методу setTimeout другим параметром.
Листинг 2.5. Файл chapter2/StatusScrol/StatusScroll. html
<HTML>
<HEAD>
<Т1ТLЕ>Авторський компакт-диск</Т1ТLЕ>
<SCRIPT LANGUAGE="JavaScript">
<!--
var szMsg = "You are welcome to our Web site http://www.glasnet.ru/~frolov";
var nSpace = 100;
var nIteration = 0;
function sscroll()
{
var cmd = "sscroll()";
var szOut = "";
var szText = "";
for (i=0 ; i < nSpace ; i++)
{
szText += " ";
}
szText += szMsg;
szOut = szText.substring(nIteration, nSpace + nIteration);
window.status = szOut;
nlteration++;
if(nIteration > nSpace + szMsg.length)
{
nIteration = 0;
}
timer = window.setTimeout(cmd, 50);
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=white>
<Н1>Новий випуск авторського CD</H1>
<SCRIPT LANGUAGE="JavaScript">
<!--
sscroll();
//-->
</SCRIPT>
<P>Перший випуск нашого компакт-диска вже з'явився в продажі. Інформацію про цей, а також про такий випуск ви знайдете на нашому сервері Web, адреса якого відображається у вікні стани браузера
</BODY>
</HTML>
У області заголовка документа визначені глобальні перемінні szMsg, nSpace і nIteration, а також функцію sscroll.
Перемінна szMsg инициализируется текстовим повідомленням, що буде безупинно переміщатися в рядку стани браузера. Значення, записане в перемінну nSpace, визначає кількість прогалин, що буде додано до рядка повідомлення зліва перед початком операції зсуву. І нарешті, перемінна nIteration служить лічильником зсувів для функції sscroll.
Функція sscroll визивається перший разом у тілі документа:
<BODY BGCOLOR=white>
<Н1>Новий випуск авторського CD</H1>
<SCRIPT LANGUAGE="JavaScript">
<!--
sscroll();
//-->
</SCRIPT>
</BODY>
Надалі функція sscroll організує за допомогою методу setTimeout свій власний виклик, відкладений у часу на 50 мс, і завершує роботу. Проте через зазначений час функція буде викликана знову, і це буде продовжуватися доти, поки документ HTML, що містить сценарій, залишається завантаженим у вікно браузера.
Спрощено структура функції sscroll показана нижче:
function sscroll ()
{
var cmd = "sscroll()";
...
// Відображення повідомлення в рядку стани браузера
...
// Зсув повідомлення вліво на одну позицію
...
timer = window. setTimeout(cmd, 50);
}
Після відображення повідомлення в рядку стани і зсуву цього повідомлення вліво на одну позицію функція sscroll викликає метод setTimeout, предавая йому через перший параметр перемінну з командою, що підлягає виконанню, а через другий - час затримки, по прошествии який дану команду потрібно буде виконати.
У якості виконуваної команди методу setTimeout зазначений виклик функції sscroll.
У функції sscroll визначені три локальні перемінні. Перемінна cmd береже команду виклику функції sscroll. У перемінної szOut підготовляється текст, відображуваний у рядку стани браузера при кожному виклику функції sscroll.
Текстова перемінна szText використовується як робоча. У ній формується повідомлення для висновка. Спочатку в перемінну szText записується nSpace прогалин, а потім добавляється рядок szMsg:
for (i=0 ; i < nSpace ; i++)
{
szText += " ";
}
szText += szMsg;
Для того щоб при кожному виклику функції sscroll повідомлення відображалося зі зсувом на одну позицію, витягається з перемінної szText подстрока. Витяг подстроки виконується за допомогою методу substring, визначеного в умонтованому класі текстових рядків String. Отримана подстрока записується у властивість status об'єкта window і в такий спосіб відображається в рядку стани:
szOut = szText. substring(nIteration, nSpace + nIteration);
window. status = szOut;
Перший параметр методу substring визначає початкову позицію подстроки усередині рядка, а другий - кінцеву.
Після відображення повідомлення функція sscroll збільшує значення глобального лічильника nIteration на одиницю:
nIteration++;
Коли в результаті зсуву повідомлення цілком іде з рядка стана, лічильник nIteration знову встановлюється в нульове значення:
if(nIteration > nSpace + szMsg.length)
{
nIteration = 0;
}
Загальна довжина що зрушується рядка тут обчислюється як сума значення nSpace (кількість початкових прогалин) і довжини повідомлення szMsg. Остання знаходиться за допомогою методу length, визначеного в умонтованому класі String.
