Оглавление

Введение 1
О чем и для кого эта книга 1
Как организована книга, и как ее читать 2
Что содержится на компакт-диске 5
Благодарности 5
ЧАСТЬ I. ОСНОВЫ СОЗДАНИЯ WEB-СТРАНИЦ
И СКРИПТОВ 7
Глава 1. Структура и синтаксис языка JavaScript 9
Определения и термины 9
Структура языка 12
JavaScript и HTML 12
Способы внедрения JavaScript-кода в документы HTML 12
Порядок исполнения скриптов в документе 16
Основные характеристики языка 17
Регистрозависимость 17
Интерпретация пробельных символов 17
Комментарии 18
Запись инструкций, символы-разделители 18
Операторные блоки, составной оператор 19
Ключевые и зарезервированные слова 19
Переменные и константы 20
Правила записи имен 20
Объявление переменных и констант 21
Область видимости переменных и констант 21
Типы данных 22
Специальные типы данных 23
Тип данных null 23
Тип данных undefined 23
Скалярные типы данных 24
Логический тип данных boolean 24
Числовой тип данных 25
Строки 26
Массивы 27
Объекты 29
Основные понятия 29
Свойства 29
Методы 30
Создание объектов 30
Создание объектов в литеральной нотации 30
Создание объектов оператором new. Конструкторы объектов.
Типы объектов 31
Наследование 33
Операторы 34
Структуры управления 37
Конструкции условного исполнения 37
Оператор if...else 37
Оператор switch 37
Циклы 38
for 38
for...in 39
while 39
do...while 39
Метки, операторы break и continue 40
Метки 40
Оператор break 40
Оператор continue 40
Генерация и обработка исключений 41
Оператор throw 41
Конструкция try...catch...finally 41
Функции 43
Специфицирование функций 43
Декларирование с помощью ключевого слова function 43
Создание с помощью литерала функции 43
Создание в виде объекта с помощью оператора new 43
Вызов функций, аргументы функций 44
Глава 2. Язык HTML 45
Чем является и чем не является HTML 45
Немного истории 46
Ссылки на документацию 46
Языковые конструкции HTML 47
Элементы 47
Атрибуты 48
Комментарии 48
Структура документа HTML 49
Основные элементы Web-страниц 50
Текст 50
Набор символов документа HTML 50
Элементы форматирования текста 51
Элементы структурирования текста 52
Шрифты 52
Ссылки 53
Создание ссылок и якорей 54
URI 54
Списки 55
Таблицы 56
Изображения, объекты, апплеты 56
Формы 57
Фреймы 58
Глава 3. Каскадные таблицы стилей CSS2 59
Ссылки на документацию 59
Основные сведения о CSS2 60
Возможности CSS2 60
Использование CSS2 в HTML-документах 62
Язык таблиц стилей по умолчанию 62
Встроенная информация о стиле 62
Таблицы стилей, внедренные в документ 63
Внешние таблицы стилей 64
Предпочитаемые, альтернативные и постоянные таблицы
стилей 64
Связывание документа с внешними таблицами стилей 65
Разработка таблиц стилей CSS2 66
Основные синтаксические конструкции CSS 66
Правила "at" 66
Наборы правил, селекторы, объявления, свойства 66
Комментарии 67
Селекторы 67
Типы селекторов 68
Каскады таблиц стилей. Наследование 71
Модель представления документа в виде блоков 73
Модель визуального форматирования 73
Визуальные эффекты 74
Цвет 75
Шрифты 76
Текст 77
Курсоры 78
Глава 4. Объектные модели браузера и документа 79
Понятия объектных моделей браузера, документа 79
Введение в объектную модель документа (DOM) 80
W3C DOM и DHTML Object Model 81
Объекты модели документа, их связь с HTML 82
Иерархия объектов модели документа браузера 84
Способы доступа к объектам модели документа 86
Доступ через методы объекта document 87
Доступ через предопределенные коллекции объектов 88
Доступ путем прохождения дерева документа 89
Основы использования объектной модели 91
Объект window. Методы ввода/вывода информации 91
Метод alert 91
Метод confirm 92
Метод prompt 92
Объекты document и body 93
Объект body 95
DOM и CSS 96
Управление таблицами стилей 96
Управление встроенной информацией о стиле 103
Управление стилем на основе значения атрибута class
элемента 106
События в объектной модели 107
Несколько слов о моделях обработки событий 107
Базовая модель обработки событий 108
Принципы обработки событий 108
Основные события DOM 110
Программный запуск и отмена обработки событий 113
Специфические модели обработки событий 114
Модель обработки событий Netscape 115
Модель обработки событий Microsoft Internet Explorer 116
Модель обработки событий DOM уровня 2 117

ЧАСТЬ II. РЕШЕНИЕ ТИПОВЫХ ЗАДАЧ
ПРОГРАММИРОВАНИЯ СКРИПТОВ 121
Глава 5. Определение параметров операционного
окружения 123
Определение версии JavaScript 124
Определение параметров совместимости браузера 126
Определение параметров дисплея 132
Глава 6. Дата и время 134
Объект Date 134
Операции с объектом Date 135
Конвертирование даты/времени в строку 139
Разработка объекта, содержащего метод конвертирования
даты/времени в строку произвольного формата 140
Применение объектов Date и CVDate 142
Вывод текущего времени на Web-странице 143
Редирект с задержкой и выводом времени до перехода 144
Глава 7. Работа с cookie 147
Что такое cookie? 147
Cookie в деталях 148
Cookie и HTTP 148
Cookie и JavaScript 150
Cookie со стороны браузера 153
Практическое применение cookie 154
Библиотека функций работы с cookie 155
Использование библиотеки работы с cookie: скрипт,
запоминающий имя пользователя, количество и дату посещений
страницы 159
Глава 8. Регулярные выражения 163
Основы регулярных выражений 163
Создание регулярных выражений 163
Шаблоны регулярных выражений 164
Флаги регулярных выражений 170
Работа с регулярными выражениями в JavaScript 171
Объект RegExp 171
Методы объекта RegExp 172
Свойства объекта RegExp 173
Методы объекта String, обрабатывающие текст на основе
регулярных выражений 175
Практическое использование регулярных выражений 178
Примеры часто употребляемых регулярных выражений 179
Глава 9. Протоколы mailto и javascript 188
Протокол mailto 189
JavaScript и URL типа mailto 191
URL типа mailto и JavaScript в ссылках 191
URL типа mailto и JavaScript в формах 193
Протокол javascript 195
Возможности применения URL типа javascript 196
Генерация изображений через протокол javascript 201
ЧАСТЬ III. СОЗДАНИЕ ДИНАМИЧЕСКИХ
ЭФФЕКТОВ 203
Глава 10. Управление интерфейсом браузера 205
Создание окон браузера с заданными параметрами 205
Изменение параметров окна браузера 210
Примеры перемещения и изменения размеров окна браузера 210
Изменение текста заголовка, строки состояния, управление
прокруткой документа 213
Изменение текста заголовка окна браузера 213
Изменение текста строки состояния окна браузера 213
Управление прокруткой документа 215
Глава 11. Работа с формами 217
Работа с формами средствами JavaScript 219
Формы в объектной модели документа 219
Методы доступа к объектам элементов управления форм 220
Принципы динамической обработки форм 224
Манипулирование элементами управления форм 224
Манипуляции общего типа элементами управления форм 237
Улучшение эксплуатационных характеристик пользовательского
интерфейса форм средствами JavaScript 238
Принципы работы с формами при реализации дружественного
пользовательского интерфейса 239
Элементы создания дружественного пользовательского
интерфейса 241
Управление состоянием взаимосвязанных элементов
управления 241
Примеры автоматизации действий пользователя 244
Пример формы с автокалькуляцией 247
Пример формы обратной связи 249
Усложненный пример формы обратной связи 250
Глава 12. Работа с изображениями 253
Средства и приемы работы с изображениями в гипертекстовом
документе 254
Изображения в объектной модели документа 254
Объект Image и коллекция images 256
Общие принципы работы с изображениями 258
Обработчики событий onload и onerror изображений.
Свойство complete 259
Несколько рекомендаций по работе с изображениями 260
Практические примеры работы с изображениями 264
Предварительная загрузка изображений с обработкой ошибок
загрузки 265
Пример создания слайд-шоу с предварительной загрузкой
изображений 269
Скрипт галереи изображений 271
Глава 13. Создание анимационных эффектов 277
Средства и принципы создания анимации на Web-страницах 277
Примеры создания анимации 278
Плавное "проявление" и "исчезновение" текста 278
Текст, движущийся на наблюдателя 280
Примеры создания "бегущих строк" 280
Вариант 1 281
Вариант 2 281
Волнообразно движущийся текст 284
Эффект 1 284
Эффект 2 286
Эффект 3 288
Текст, прилетающий по частям 290
Имитация движения текста по кругу в 3D-пространстве 292
Движение фонового рисунка страницы 294
Летящие звезды 294
Эффект фейерверка 298
Падающий снег 301
Часы со стрелками 303
Использование фильтров в Microsoft Internet Explorer для
создания анимационных эффектов 305
Что такое фильтры? 305
Применение фильтров 306
Волнообразное движение текста на основе фильтра Wave 310
Динамическое изменение прозрачности изображений с
помощью фильтра Alpha 311
Анимационное изменение содержимого с помощью фильтра
Fade 311
Эффектная анимация на основе использования фильтра Light 313
ЧАСТЬ IV. ПРИМЕРЫ РАЗРАБОТКИ
СЛОЖНЫХ СКРИПТОВ 315
Глава 14. Разработка визуального редактора HTML
на основе режима редактирования документа
Microsoft Internet Explorer 317
Редактирование гипертекстового содержимого в Microsoft Internet
Explorer 318
Реализация визуального редактора HTML 320
Структура документа editor.htm 320
Процесс инициализации редактора 321
Создание нового документа 324
Обработка команд редактирования и форматирования текста,
печати и сохранения документа 327
Обработка событий изменения гарнитуры и размера шрифта
текста 329
Установка цвета шрифта и фона текста 331
Глава 15. Приемы эффективного объектно-
ориентированного программирования на JavaScript 335
Анализ модели объектно-ориентированного программирования
на JavaScript 336
Класс или объект? 336
Проблемы идентификации типов объектов в JavaScript 340
Использование классических конструкций
объектно-ориентированного программирования в JavaScript 343
Несколько слов о наследовании 343
Пространства имен 346
Классы, инкапсулирующие классы 347
Нюансы использования свойств объектов и вызовов
методов классов 350
Общие рекомендации относительно объектно-
ориентированного программирования на JavaScript 353
Примеры эффективного объектно-ориентированного
программирования на JavaScript 354
Реализация алгоритма наследования 355
Класс VSimpleObject — корневой класс в иерархии
наследования 357
Классы для работы с геометрическими типами данных 359
Класс VPoint 360
Класс VSize 362
Класс VRect 364
Класс VObject 369
Модель событий, сигналы и слоты 370
Класс таймера VTimer 376

Заключение 381
Приложение. Описание компакт-диска 382
Предметный указатель 384


IV
Оглавление
XI
Оглавление