Оглавление
Введение 13
Часть I. Знакомство
с JavaScript 15
Глава 1. JavaScript и WorldwideWeb.....................................16
Знакомство с JavaScript........................................16
Десять заповедей JavaScript, которые должен знать каждый создатель сценариев.......................17
JavaScript можно внедрить в HTML.....................17
JavaScript зависит от среды...............................18
JavaScript — интерпретируемый язык................19
JavaScript — слабо типизированный язык..........19
Javascript — объектно-ориентированный язык .... 19
JavaScript — язык, управляемый событиями.......20
JavaScript — это не Java.....................................20
JavaScript — многофункциональный язык...........20
JavaScript — развивающийся язык....................20
Сферы использования JavaScript........................20
Четыре фазы развития World Wide Web.................21
Фаза 1. Символьный гипертекст.........................21
Фаза 2. Графически-ориентированные статические HTML-документы.............................21
Фаза 3. Динамические HTML-документы.............21
Фаза 4. Активные HTML-документы.....................22
Среда разработки Web-приложений......................22
Клиентская часть................................................23
Серверная часть................................................25
Что можно сделать при помощи JavaScript?..........27
Клиентские приложения.....................................27
Проверка допустимости данных........................27
Создание интерактивных форм...........................27
Клиентские таблицы поиска...............................27
Поддержка состояния........................................27
Работа с Java-аплетами, элементами управления ActiveX и подключаемыми модулями............27
Поддержка JavaScript со стороны браузеров.........28
Netscape Navigator.............................................28
Microsoft Internet Explorer....................................28
Другие браузеры................................................28
Сравнение JavaScript и JScript.............................28
Что такое VBScript?............................................28
Программирование в VBSript..............................30
Резюме .. .. 31
Глава 2. Совместная работа
JavaScript и HTML 32
Основы HTML.......................................................32
Текущая ситуация..............................................32
Основы HTML.....................................................32
Структура HTML-документа.................................32
Основное об атрибутах.......................................34
Внедрение JavaScript в HTML................................34
Атрибуты дескриптора <script>.........................34
Просмотр кода JavaScript..................................37
Создание JavaScript-кода......................................37
Выполнение сценариев.......................................37
Учет браузеров, не поддерживающих JavaScript.......................39
Написание кода..................................................40
Выполнение сценариев.......................................41
Резюме.................................................................41
Глава 3. Создание собственного набора инструментальных средств JavaScript 42
Необходимые инструментальные средства............42
JavaScript-редакторы.........................................42
HTML-редакторы................................................43
Web-браузеры.....................................................
Отладчики сценариев........................................45
Процесс разработки на JavaScript........................45
Серверные инструментальные средства JavaScript.............................................................45
Netscape's Server-Side JavaScript.......................45
Borland IntraBuilder..............................................45
Резюме.................................................................45
Глава 4. Создание первого сценария..................................46
Краткое напоминание............................................46
Перед началом работы..........................................46.
Какие браузеры будут поддерживаться?............46
Как следует учитывать браузеры, не поддерживающие JavaScript?............................47
Встроить код или вынести его в отдельный файл?.................................................................48
Каковы ваши цели?............................................48
Приступаем к созданию сценария.........................48
Определение целей...........................................49
Создание шаблона кода.....................................49
Учет He-JavaScript-браузеров.............................49
Написание кода..................................................49
Вызов функции...................................................50
Первый сценарий.................................................50
Резюме.................................................................51
Часть II. Базовое подмножество языка JavaScript 52
Глава 5. Основы языка JavaScript 53
Краткое резюме....................................................53
Как JavaScript связан с CGI, дополнительно вставляемыми модулями и Java............................53
CGI.....................................................................53
Подключаемые модули.......................................54
Java...................................................................54
Внедрение сценариев в HTML-документы...............55
События................................................................56
Синтаксис.............................................................56
Версии JavaScript..............................................56
Лексемы.............................................................57
Переменные.......................................................60
Константы..........................................................63
Цвета.................................................................63
Типы данных......................................................64
Выражения.........................................................64
Комментарии......................................................
Функции.............................................................67
Резюме.................................................................68
Глава 6. Операции 69
Операции присваивания.......................................70
Арифметические операции...................................70
Операции сравнения.............................................71
Строковые операции.............................................73
Условные операции...............................................74
Булевы операции..................................................74
Операция typeof...................................................74
Определение и вызов функций..............................75
Операции со структурами данных........................75
Поразрядные операции.........................................75
Поразрядные логические операции....................76
Поразрядные операции сдвига...........................76
Зачем вообще возиться с разрядами?.................77
Приоритеты выполнения операций........................79
Резюме.................................................................80
Глава 7. Управляющие структуры и организация циклов 82
Условные операторы.............................................82
if .. .. 82
if..else................................................................84
try..catch............................................................85
Операторы организации циклов............................85
for......................................................................85
for..in..................................................................87
while....................................................................88
do while.............................................................88
break и continue...................................................88
Метки....................................................................89
Операторы with.....................................................90
Оператор switch....................................................91
Резюме.................................................................91
Глава8. Функции 93
Понятие функций..................................................93
Создание функций.............................................93
Где объявлять функции.......................................94
Вызов функции...................................................94
Использование аргументов....................................94
Изменение количества аргументов.....................96
Использование глобальных и локальных переменных.......................................................99
Передача объектов по ссылке............................100
Дополнительные сведения о функциях.................101
Повторное использование функций...................101
Рекурсивные функции.......................................101
Резюме................................................................102
Глава 9. Объекты со стороны клиента 103
Понятие объекта..................................................103
Объекты............................................................103
Инкапсуляция.....................................................106
Сообщения.......................................................107
Классы..............................................................107
Объекты JavaScript..............................................109
Точечная нотация..............................................109
Исследование объектной модели JavaScript......110
Отношения содержания в JavaScript.................110
Свойства...........................................................111
Методы.............................................................111
События............................................................112
Дополнительная информация об объектах...........113
Объект navigator................................................114
Объект Window..................................................116
Объекты верхнего уровня...................................119
Объекты второго уровня....................................122
Объекты третьего уровня...................................126
Объекты четвертого уровня...............................129
Резюме ............130
Глава 10. Основные объекты языка .... 131
Объект Global.......................................................131
Объект String........................................................131
Примеры манипуляций со строками..................134
Форматирование строк....................................135
Работа со специальными символами.................139
Преобразование строк и чисел..........................140
Объект RegExp....................................................141
Объект Array.......................................................141
Объект Date.........................................................144
Объект Math.........................................................147
Объект Boolean.....................................................148
Объект Number.....................................................149
Объект Function....................................................149
Резюме................................................................150
Глава 11. Создание пользовательских объектов JavaScript 151
Создание объектов...............................................151
Создание экземпляров.........................................153
Работа с экземплярами объектов..........................154
Создание составных объектов..............................156
Динамическое создание объектов.........................159
Расширение экземпляров объектов......................162
Резюме................................................................162
Глава 12. Серверная часть JavaScript 163
Использование архитектуры клиент/сервер..........163
Web-приложения с клиент-серверной архитектурой.....................................................163
Передача информации между клиентом и сервером..........................................................164
Управление сеансами........................................165
Разработка серверных приложений JavaScript.....166
Создание исходных файлов...............................166
Подготовка приложения....................................168
Исправление ошибок.........................................170
Базовые серверные объекты JavaScript................172
Объект Server...................................................172
Объект Project...................................................173
Объект Client.....................................................173
Объект Request.................................................174
Объект Lock.....................................................175
Объект File........................................................175
Объект SendMail................................................177
Объекты баз данных.........................................178
Резюме .... ..181
Часть III. Использование DOM 182
Глава 13. Основы объектной модели документа (DOM) 183
Понятие объектной модели документа..................183
От DHTML к DOM..............................................183
Навигация по таблице..........................................184
Управление документами.....................................184
Объектная модель и атрибуты...........................185
Навигация по документу.......................................186
Резюме................................................................187
Глава 14. Управление событиями 188
Понятие событий и обработчиков событий...........188
Обработчики событий JavaScript........................188
Щелчок на объекте (onClick)..............................189
Отправка формы (onSubmit)..............................190
Сброс формы (onReset).....................................190
Изменение данных (onChange)...........................191
Получение фокуса (onFocus)..............................191
Выход из фокуса (onBlur)...................................192
Выделение текста (onSelect)..............................193
Перемещение мыши по объектам (onMouseOver и onMouseOut)............................193
Загрузка документа (onLoad).............................196
Выход из документа (onUnload)..........................197
Обработка ошибок (onError).................................197
Прерывание загрузки изображения (onAbort).......198
Замена обработчиков событий.............................198
Программная генерация событий.........................198
События таймера...............................................198
Резюме................................................................199
Глава 15. Объект Window 200
Объект Window.....................................................200
Открытие и закрытие окон....................................201
Ссылки на окна..................................................202
Определение содержимого окна.......................202
Определение атрибутов окна...........................202
Закрытие окон...................................................204
Навигация между окнами......................................207
Косвенная установка фокуса..............................207
Прямая установка фокуса..................................208
Удаление фокуса...............................................208
Отображение окон сообщений.............................208
Простое уведомление........................................208
Yes/No-подтверждение......................................210
Пользовательский ввод.....................................210
Работа с сообщениями строки состояния.............212
Резюме .. ...213
Глава 16. Объект Document 214
Объект Document.................................................214
Программное создание HTML-документов.........214
Изменение цвета документа..............................216
Объект Link.........................................................218
Ссылки на объекты Link....................................219
Выполнение JavaScript-кода для ссылок...........220
Объект Anchor......................................................223
Объект Image.......................................................223
Резюме................................................................224
Глава 17. Объекты Form 225
Объект Form.........................................................225
Отправка формы на сервер...............................225
Проверка элементов в Form.................................227
Объект Text 229
Присваивание объекту Text значения по умолчанию.........................................................229
Выделение текста в фокусе...............................230
Захват данных с помощью объекта Textarea.......231
Перенос текста в объекте Textarea....................231
Объекты Button: Submit, Reset и Button................231
Объект Checkbox.................................................233
Определение заполнения объекта Checkbox.....233
Объект Radio........................................................234
Определение значения выбранного переключателя..................................................234
Объект Select..................................:....................235
Создание списка выбора...................................235
Создание прокручиваемого списка....................236
Создание прокручиваемого списка с мультивыбором................................................236
Определение значения или текста выбранной опции................................................................237
Определение значений в прокручиваемых списках с мультивыбором..................................237
Выбор опции с помощью JavaScript...................238
Объект Password..................................................238
Объект Hidden......................................................239
Резюме...............................................................241
Глава 18. Объекты Frame 242
Объект Frame.......................................................242
Создание фреймов............................................243
Размещение дескрипторов................................244
Добавление JavaScript-кода к фреймам...........246
Синхронизация фреймов...................................247
Обновления фреймов........................................249
Сценарии для фреймов с картами изображений.....................................................252
Работа с фреймовыми URL.................................254
Ссылки на фреймы.............................................254
Ссылки из дочернего фрейма на родительский....................................................256
Объект Location....................................................260
Открытие нового URL.......................................260
Работа со свойством protocol............................261
Объект History......................................................262
Определение размеров списка..........................262
Навигация по списку посещений.......................262
Объект Navigator..................................................264
Резюме................................................................265
Глава 19. Другие DOM-объекты 266
DOM-браузеры.....................................................266
Управление DOM-документами и DOM-методы.....268
Использование метода cloneNode......................268
Использование метода insertBefore в DOM........269
Использование метода swapNode......................269
Использование метода removeNode...................269
Резюме................................................................270
Часть IV. Технологии программирования на динамическом HTML 271
Глава 20. Динамическая подмена_____272
Знание событий...................................................272
onMouseOver.....................................................272
onMouseOut......................................................272
onMouseDown....................................................272
onMouseUp........................................................272
Виды динамических подмен.................................272
Rollover-эффекты для изображений...................273
.Rollover-эффекты для слоев...............................274
Резюме................................................................276
Глава21. Визуальные эффекты 277
Бегущие строки...................................................277
Баннеры..............................................................278
Постепенное изменение цветов............................281
Анимированные командные кнопки.......................282
Резюме................................................................284
Глава 22. Каскадные таблицы стилей 285
Основные концепции таблиц стилей....................285
Стандарты........................................................285
Наследование...................................................286
Границы и заполнение текста пробелами...........286
Комментарии....................................................286
Использование стилей в документах....................286
Определение стилей.........................................287
Применение стилей..........................................288
Смешивание селекторов...................................289
Определение старшинства стиля......................290
Объекты стилей в JavaScript................................290
document.tags..................................................290
document.classes..............................................290
document.ids....................................................290
Свойства...........................................................290
Резюме................................................................292
Глава 23. Слои 293
Универсальные действия.....................................294
Использование таблиц стилей для создания слоев.................................................................294
Управление накладывающимися слоями...........298
Создание мультипликационных эффектов..........299
<div> и <iframe>..................................................299
Определение блоков данных............................299
Вставка внешних файлов...................................303
<1ауег> и <ilayer>.................................................305
Пример страницы с вкладками........................305
Пример со сталкивающимися шариками...........307
Резюме................................................................310
Глава 24. Меню и панели инструментов DHTML 311
Начальные предположения...................................311
Выяснение возможностей..................................311
Планы на будущее.............................................311
Учет API............................................................312
Проектирование меню..........................................312
Определение слоев...........................................312
Обработка действий.........................................314
Использование меню.........................................314
Описание дополнительных возможностей..........316
Создание инструментальных панелей...................317
Применение событий........................................317
Описание проблем проектирования..................318
Модульное программирование..........................318
Создание изображений.....................................318
Написание HTML-кода.......................................318
Реализация rollover-эффектов для изображений.....................................................320
Реализация поля адреса......................................321
Обработка событий, связанных с кнопками.......322
Проверка результатов.......................................322
Резюме................................................................325
Глава 25. Взаимодействие с другими технологиями 326
Подключаемые модули браузера..........................326
Подключаемые модули и MIME-типы.................326
Определение устанавливаемых подключаемых модулей............................................................327
Элементы управления ActiveX.............................328
Понятие элемента управления ActiveX..............328
Реализация защиты..........................................329
Доступ с помощью JScript.................................329
Java-аплеты.........................................................330
Доступ к Java из JavaScript...............................330
Доступ к JavaScript из Java...............................331
Подробнее о Java-аплетах................................335
LiveAudio..............................................................336
Использование JavaScript-методов....................337
Воспроизведение звуков в ответ на JavaScript-события............................................337
Резюме................................................................339
Часть V. Избранные программные технологии 340
Глава 26. Гарантия работы сценариев в браузерах Netscape и Microsoft 341
Версии языка и версии браузера.........................341
Сравнительный анализ JavaScript-диалектов........342
JavaScript от Netscape......................................342
JavaScript 1.0....................................................342
JScript от Microsoft............................................348
Ошибки...............................................................353
Резюме................................................................354
Глава 27. Методы выяснения типа браузера 355
Подход "Все или ничего"......................................355
Подход "Выяснение по месту"...............................355
Тип браузера.....................................................356
Версия браузера...............................................356
Версия JavaScript.............................................356
Платформа операционной системы...................356
Пример динамического позиционирования........356
Резюме................................................................359
Глава 28. Навигация по сайту с использованием JavaScript 360
Исследование технологий навигации...................360
Создание сценария для динамической инструментальной панели....................................360
Создание объекта Toolbar..................................361
Обсуждение дополнительных возможностей......365
Использование объекта History.............................365
Резюме. ....366
Глава 29. Формы и верификация данных 367
Установка пользовательской обратной связи........368
Создание формы для обратной связи пользователем...................................................368
Тестирование пользовательской формы............369
Вывод окон сообщений......................................370
Использование сообщения о состоянии.............372
Верификация данных, введенных пользователем......................................................373
Верификация ввода данных в форму.................373
Обеспечение согласованности..........................373
Обеспечение бизнес-правил.............................374
Проверка на завершенность..............................375
Создание интерактивных форм.............................376
Использование вычисляемых полей...................377
Создание повторно используемого кода верификации.......................................................378
Целые числа......................................................378
Строки..............................................................379
Денежные значения...........................................379
Кредитные карточки..........................................380
Пример: тестер цветов JavaScript........................381
Резюме................................................................384
Глава 30. Персонализация и динамические страницы 386
Статические Web-страницы.................................386
Немного о cookie-наборах.....................................387
Преимущества cookie-наборов..........................387
Ограничения и недостатки cookie-наборов........387
Мифы о cookie-наборах.....................................388
Использование cookie-наборов.............................388
Получение значений cookie-наборов..................389
Установка значений cookie-наборов...................389
Удаление cookie................................................391
Пример применения cookie-набора...................391
Серверы и браузеры, поддерживающие механизм cookie-наборов......................................398
Другие способы поддержки информации о состоянии............................................................398
Строка запроса.................................................398
Скрытые переменные формы.............................400
Резюме................................................................400
Глава 31. Выполнение поиска по шаблону с использованием регулярных выражений 401
Создание регулярных выражений.........................401
.Конструктор RegExp().......................................401
Оператор присваивания....................................401
Синтаксис регулярных выражений........................401
\w и \W............................................................402
\s и \S...............................................................402
\d и \D..............................................................402
[\b]...................................................................403
Точка.................................................................403
[...] и [^...]........................................................403
[х-у] и [^х-у]......................................................403
{х,у},{х,} и {х}..................................................403
?, + и *..............................................................403
Логическое или (|).............................................403
(...)....................................................................403
\x......................................................................403
^........................................................................403
$......................................................................404
\b и \В...............................................................404
Использование регулярных выражений.................404
Тестер регулярных выражений.............................405
Пользовательский интерфейс............................406
Функция поиска................................................406
Функция замены................................................406
Функция очистки...............................................406
Пример: программа проверки правильности
ввода телефонных номеров...................................407
Резюме................................................................408
Глава 32. Технология обработки данных со стороны клиента 409
Определение источника данных: клиент или
сервер?...............................................................409
Что такое клиентская таблица?.............................410
Создание таблиц поиска......................................410
Создание поискового пользовательского интерфейса..........................................................411
Обработка поисковых запросов............................412
Отображение результатов поиска.........................413
Запуск приложения..............................................414
Резюме................................................................419
Глава 33. Обработка ошибок 420
Типы ошибок.......................................................420
Синтаксические ошибки....................................420
Ошибки времени выполнения............................421
Логические ошибки...........................................421
Интерпретация сообщений об ошибках................421
Исправление кода................................................422
Проверка кода HTML.........................................422
Использование комментариев для идентификации проблем...................................422
Использование метода alert() для трассировки кода..................................................................423
Тестирование кода...............................................423
Программирование с использованием устойчивых технологий.........................................425
Высокоуровневая разработка кода проекта и детальное проектирование................................426
Написание модульного кода...............................426
Написание сильно связанного кода....................426
Написание слабо связанного кода.....................426
Написание повторно используемого кода...........426
Написание кода обработки ошибок..................426
Использование жестких соглашений по именованию......................................................427
Использование комментариев...........................427
Объявление и инициализация переменных.......428
Надежная работа кода..........................................428
Резюме................................................................428
Глава 34. Отладка 429
Использование отладчика сценариев Microsoft.....429
Обзор возможностей отладчика сценариев
Microsoft...........................................................429
Использование отладчика сценариев
Microsoft для отладки файлов............................430
Заключительные слова об отладчике сценариев Microsoft..........................................433
Использование JavaScript-отладчика Netscape.....433
Исследование возможностей JavaScript-отладчика Netscape............................433
Использование JavaScript-отладчика Netscape для отладки файлов..........................................433
Заключительные слова о JavaScript-отладчике Netscape...........................................................435
Использование метода alert()................................435
Разбор примера................................................436
Итоговые слова об использовании метода alert().....................................................437
Резюме .. ...437
Глава 35. JavaScript и безопасность в Web 438
Концепции безопасности в клиентской части JavaScript............................................................439
Атаки на службы................................................441
Проблемы Netscape Navigator 2.0......................441
Более поздние версии Navigator........................442
Internet Explorer 3.x...........................................443
Максимизация надежности защиты......................443
Безопасные сеансы и цифровые сигнатуры........443
Отключение языков создания сценариев в браузере......................................................444
Фильтрация через брандмауэр..........................445
Информационные ресурсы о безопасности для JavaScript и Java........................................445
Концепции безопасности в серверной части JavaScript............................................................446
Java и безопасность.............................................447
Компоненты защиты..........................................448
Ограничения защиты.........................................449
Резюме................................................................450
Часть VI. Приложение 451
Приложение А. Десять основных ресурсов в Web, посвященных JavaScript 452
Netscape DevEdge Online......................................452
Технологии написания сценариев Microsoft..........452
Введение в JavaScript от Voodoo..........................452
lrt.org...................................................................452
Focus on JavaScript..............................................452
SuperScripter.......................................................453
JavaScripts.com...................................................453
JavaScript Source.................................................453
Webcoder.com......................................................453
Website Abstraction...............................................453
Сопровождающий CD-ROM 454
Предметный указатель 455
Аллен Вайк и др. "JavaScript (энциклопедия пользователя)" 2001 г.