тм Ричард Вагнер, Аллен Вайк Исчерпывающее руководство об основном языке сценариев ^ Jr Своевременные решения для создания полнофункциональных Web-приложений Объектно-ориентированная Исследуется связь JavaScript с другими Web-технологиями методология и ее воплощение в как со стороны клиента, так и со стороны сервера "JavaScript Фундаментальные основы языка JavaScript Операторы, управляющие структуры, функции и базовые объекты Исчерпывающий анализ объектной модели документов Объекты, используемые со стороны клиента и со стороны сервера Помещение на Web-страницы эффектов, характерных для динамического HTML Устойчивая работа сценариев в браузерах Netscape Navigator и Microsoft Internet Explorer Сопровождающий CD-ROM Исходные тексты всех примеров, рассмотренных в книге Полезные инструментальные средства независимых разработчиков Многое другое SAMS PUBLISHING www.diasoft.kiev.ua Аллен Вайк и др. JAVASCRIPT. ЭНЦИКЛОПЕДИЯ ПОЛЬЗОВАТЕЛЯ то ргово-издательский дом 1 DiaSoft Киев • Москва • Санкт-Петербург 2001 JavaScript тм THIRD EDITION R. Allen Wyke, et al. SAMS A Division of Macmillan USA 201 West 103rd Street Indianapolis, Indiana 46290 UNLEASHED энцикло ттооррггооввоо--ииззддааттееллььссккиий и ндиомм DiaSoft —- Основана в 1996 г. Аллен Вайк и др. avaScript тм Киев • ООО "ТИД" ДС" . 2001 УДК 004.43(031) ББК 32.973.26-018.1 В 14 ВАЙК Аллен и др. В14 JavaScript. Энциклопедия пользователя: Пер.с англ./Аллен Вайк.— К.: ООО "ТИД" ДС", 2001.— 480с. ISBN 966-7992-00-04 Книга JavaScript. Энциклопедия пользователя является наиболее полным учебным и справочным руковод- ством повеем версиям языка JavaScript, включая JavaScript 1.5 и JScript 5.O. На сегодняшний день JavaScript представляет собой самый распространенный язык для написания сценариев, обеспечивающих поддержку интерактивного содержимого Web-страниц. Книга охватывает широкий спектр вопросов, начиная с основ языка и заканчивая сложными вопросами практического применения технологий Web-дизайна. Подробно рассматриваются: взаимодействие JavaScript и HTML; типы данных, операции, выражения и операторы; основы объектно-ориентированной методологии и ее реализация в JavaScript; объекты со стороны клиента и сервера; DHTML; технологии написания устойчивого и надежного кода; методика отладки кода. Особое вни- мание в книге уделяется вопросам достижения безопасности Web-приложений. Книга изобилует множеством практических примеров, которые покрывают всю специфику разработки Web-сайтов с использованием JavaScript.Справочник по базовым языковым объектам превращает книгу в истинное настольное руководство. Сопровождающий CD-ROM содержит исходные коды всех примеров, рассмотренных в книге, а также множество другой полезной информации. JavaScript. Энциклопедия пользователя рассчитана на широкий круг разработчиков Web-приложений. Учебное издание ББК 32.973.26-018.1 ВАЙК Аллен и др. JAVASCRIPT. ЭНЦИКЛОПЕДИЯ ПОЛЬЗОВАТЕЛЯ Головний редактор Ю.Н.Артеменко Верстка Г.А.Булавка Головний дизайнер О.А.Шадрт Здано на складання 20.07.2001. Шдписано до друку 20.09.2001. Формат 84x108/16. Патр офсетний. Гарнггура Тайме. Друк офсетний. Умовн.друк.арк. 34,80. Обл.-вид.арк. 34,80 Тираж 2000 прим. Замовлення № 1-158. ТОВ "ТВД" ДС", 04053, Кшв-53, вул. Артема 25, а/я 100, тел./факс (044) 212-1254. e-mail: [email protected], http://www.diasoft.kiev.ua. Свщоцтво про внесения суб'екта видавничо'1 справи до Державного реестру видавщв, вигхтвниюв i роз- повсюджувач!в видавничо'1 продукцн: сер!я — ДК, №558 вщ 09.08.2001р. Отпечатано в соответствии с качеством предоставленных диапозитивов на ОАО «Белоцерковская книжная фабрика» 09117, г. Белая Церковь, ул. Леся Курбаса, 4 Authorized translation from the English language edition published by Sams Copyright ©2001 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Russian language edition published by DiaSoft Publishing. Copyright © 2001 Лицензия предоставлена издательством Sams Corporation, подразделение Macmillan Computer Publishing. Все права зарезервированы, включая право на полное или частичное воспроизведение в какой бы то ни было форме. ISBN 966-7992-00-4 © Перевод на русский язык. ООО "ТИД" ДС", 2001 ISBN 0-672-31763-Х (англ.) © Sams Corporation, 2001 © Оформление. ООО "ТИД" ДС", 2001 Гигиеническое заключение № 77.99.6.953.П.439.2.99 от 04.02.1999 Оглавление Введение 13 Глава 2. Совместная работа JavaScript и HTML 32 Часть I. Знакомство Основы HTML 32 с JavaScript 15 Текущая ситуация 32 Глава 1. JavaScript и Основы HTML 33 World Wide Web 16 Структура HTML-документа 33 Знакомство с JavaScript 16 Основное об атрибутах 34 Десять заповедей JavaScript, которые должен Внедрение JavaScript в HTML 34 знать каждый создатель сценариев 17 Атрибуты дескриптора <script> 34 JavaScript можно внедрить в HTML 17 Просмотр кода JavaScript 37 JavaScript зависит от среды 18 Создание JavaScript-кода 37 JavaScript — интерпретируемый язык 19 Выполнение сценариев 37 JavaScript — слабо типизированный язык 19 Учет браузеров, не поддерживающих Javascript —объектно-ориентированный язык .... 19 JavaScript 39 JavaScript — язык, управляемый событиями 20 Написание кода 40 JavaScript — это не Java 20 Выполнение сценариев 41 JavaEicript —многофункциональный язык 20 Резюме 41 JavaSicript — развивающийся язык 20 Глава 3. Создание собственного Сферы использования JavaScript 20 набора инструментальных средств Четыре фазы развития World Wide Web 21 JavaScript 42 Фаза 1. Символьный гипертекст 21 Необходимые инструментальные средства 42 Фаза 2. Графически-ориентированные JavaScript-редакторы 42 статические HTML-документы 21 HTML-редакторы 43 Фаза 3. Динамические HTML-документы 21 Web-браузеры 44 Фаза 4. Активные HTML-документы 22 Отладчики сценариев 45 Среда разработки Web-приложений 22 Процесс разработки на JavaScript 45 Клиентская часть 23 Серверные инструментальные средства Серверная часть 25 JavaScript 45 Что можно сделать при помощи JavaScript? 27 Netscape's Server-Side JavaScript 45 Клиентские приложения 27 Borland IntraBuilder 45 Проверка допустимости данных 27 Резюме 45 Создание интерактивных форм 27 Глава 4. Создание Клиентские таблицы поиска 27 первого сценария 46 Поддержка состояния 27 Работа с Java-аплетами, элементами Краткое напоминание 46 управления ActiveX и подключаемыми Перед началом работы 46 модулями 27 Какие браузеры будут поддерживаться? 46 Поддержка JavaScript со стороны браузеров 28 Как следует учитывать браузеры, не Netscape Navigator 28 поддерживающие JavaScript? 47 Microsoft Internet Explorer 28 Встроить код или вынести его в отдельный Другие браузеры 28 файл? 48 Сравнение JavaScript и JScript 28 Каковы ваши цели? 48 Что такое VBScript? 28 Приступаем к созданию сценария 48 Программирование в VBSript 30 Определение целей 49 Резюме .. ..31 Создание шаблона кода 49 JavaScript. Энциклопедия пользователя Учет He-JavaScript-браузеров 49 if..else 84 Написание кода 49 try..catch 85 Вызов функции 50 Операторы организации циклов 85 Первый сценарий 50 for 85 Резюме 51 for..in 87 while 88 Часть II. Базовое подмножество do..while 88 языка JavaScript 52 break и continue 88 Глава 5. Основы языка JavaScript 53 Метки 89 Краткое резюме 53 Операторы with 90 Как JavaScript связан с CGI, дополнительно Оператор switch 91 вставляемыми модулями и Java 53 Резюме 91 CGI 53 Глава 8. Функции 93 Подключаемые модули 54 Понятие функций 93 Java 54 Создание функций 93 Внедрение сценариев в HTML-документы 55 Где объявлять функции 94 События 56 Вызов функции 94 Синтаксис 56 Использование аргументов 94 Версии JavaScript 56 Изменение количества аргументов 96 Лексемы 57 Использование глобальных и локальных Переменные 60 переменных 99 Константы 63 Передача объектов по ссылке 100 Цвета 63 Дополнительные сведения о функциях 101 Типы данных 64 Повторное использование функций 101 Выражения 64 Рекурсивные функции 101 Комментарии 66 Резюме 102 Функции 67 Глава 9. Объекты со стороны Резюме 68 клиента 103 Глава 6. Операции 69 Понятие объекта 103 Операции присваивания 70 Объекты 103 Арифметические операции 70 Инкапсуляция 106 Операции сравнения 71 Сообщения 107 Строковые операции 73 Классы 107 Условные операции 74 Объекты JavaScript 109 Булевы операции 74 Точечная нотация 109 Операция typeof 74 Исследование объектной модели JavaScript 110 Определение и вызов функций 75 Отношения содержания в JavaScript 110 Операции со структурами данных 75 Свойства 111 Поразрядные операции 75 Методы 111 Поразрядные логические операции 76 События 112 Поразрядные операции сдвига 76 Дополнительная информация об объектах 113 Зачем вообще возиться с разрядами? 77 Объект navigator 114 Приоритеты выполнения операций 79 Объект Window 116 Резюме 80 Объекты верхнего уровня 119 Объекты второго уровня 122 Глава 7. Управляющие структуры Объекты третьего уровня 126 и организация циклов 82 Объекты четвертого уровня 129 Условные операторы 82 Резюме .. 130 if .. .. 82 Оглавление Глава 10. Основные объекты языка .... 131 Часть III. Использование DOM 182 Объект Global 131 Глава 13. Основы объектной модели Объект String 131 документа (DOM) 183 Примеры манипуляций со строками 134 Понятие объектной модели документа 183 Форматирование строк 135 От DHTML к DOM 183 Работа со специальными символами 139 Навигация по таблице 184 Преобразование строк и чисел 140 Управление документами 184 Объект RegExp 141 Объектная модель и атрибуты 185 Объект Array 141 Навигация по документу 186 Объект Date 144 Резюме 187 Объект Math 147 Глава 14. Управление событиями 188 Объект Boolean 148 Понятие событий и обработчиков событий 188 Объект Number 149 Обработчики событий JavaScript 188 Объект Function 149 Щелчок на объекте (onClick) 189 Резюме 150 Отправка формы (onSubmit) 190 Глава 11. Создание пользовательских Сброс формы (onReset) 190 объектов JavaScript 151 Изменение данных (onChange) 191 Создание объектов 151 Получение фокуса (onFocus) 191 Создание экземпляров 153 Выход из фокуса (onBlur) 192 Работа с экземплярами объектов 154 Выделение текста (onSelect) 193 Создание составных объектов 156 Перемещение мыши по объектам Динамическое создание объектов 159 (onMouseOvernonMouseOut) 193 Расширение экземпляров объектов 162 Загрузка документа (onLoad) 196 Резюме 162 Выход из документа (onUnload) 197 Глава 12. Серверная часть Обработка ошибок (onError) 197 Прерывание загрузки изображения (onAbort) 198 JavaScript 163 Замена обработчиков событий 198 Использование архитектуры клиент/сервер 163 Программная генерация событий 198 Web-приложения с клиент-серверной События таймера 198 архитектурой 163 Передача информации между клиентом и Резюме 199 сервером 164 Глава 15. OdbeicrWindow 200 Управление сеансами 165 Объект Window 200 Разработка серверных приложений JavaScript 166 Открытие и закрытие окон 201 Создание исходных файлов 166 Ссылки на окна 202 Подготовка приложения 168 Определение содержимого окна 202 Исправление ошибок 170 Определение атрибутов окна 202 Базовые серверные объекты JavaScript 172 Закрытие окон 204 Объект Server 172 Навигация между окнами 207 Объект Project 173 Косвенная установка фокуса 207 Объект Client 173 Прямая установка фокуса 208 Объект Request 174 Удаление фокуса 208 Объект Lock 175 Отображение окон сообщений 208 Объект File 175 Простое уведомление 208 Объект SendMail 177 Yes/No-подтверждение 210 Объекты баз данных 178 Пользовательский ввод 210 Резюме .... ..181 Работа с сообщениями строки состояния 212 Резюме .. ...213 JavaScript. Энциклопедия пользователя Глава 16. Объект Document 214 Ссылки на фреймы 254 Ссылки из дочернего фрейма на Объект Document 214 родительский 256 Программное создание HTML-документов 214 Объект Location 260 Изменение цвета документа 216 Открытие нового URL 260 Объект Link 218 Работа со свойством protocol 261 Ссылки на объекты Link 219 Объект History 262 Выполнение JavaScript-кода для ссылок 220 Определение размеров списка 262 Объект Anchor 223 Навигация по списку посещений 262 Объект Image 223 Объект Navigator 264 Резюме 224 Резюме 265 Глава 17. Объекты Form 225 Глава 19. Другие DO М-объекты 266 Объект Form 225 DOM-браузеры 266 Отправка формы на сервер 225 Управление DOM-документами и DOM-методы 268 Проверка элементов в Form 227 Использование метода cloneNode 268 Объект Text 229 Использование метода insertBefore в DOM 269 Присваивание объекту Text значения по Использование метода swapNode 269 умолчанию 229 Использование метода removeNode 269 Выделение текста в фокусе 230 Резюме 270 Захват данных с помощью объекта Textarea 231 Перенос текста в объекте Textarea 231 Часть IV. Технологии Объекты Button: Submit, Reset и Button 231 программирования на Объект Checkbox 233 динамическом HTML 271 Определение заполнения объекта Checkbox 233 Глава 20. Динамическая подмена 272 Объект Radio 234 Определение значения выбранного Знание событий 272 переключателя 234 onMouseOver 272 Объект Select : 235 onMouseOut 272 Создание списка выбора 235 onMouseDown 272 Создание прокручиваемого списка 236 onMouseUp 272 Создание прокручиваемого списка с Виды динамических подмен 272 мультивыбором 236 Rollover-эффекты для изображений 273 Определение значения или текста выбранной Rollover-эффекты для слоев 274 опции 237 Резюме 276 Определение значений в прокручиваемых Глава21. Визуальные эффекты 277 списках с мультивыбором 237 Выбор опции с помощью JavaScript 238 Бегущие строки 277 Объект Password 238 Баннеры 278 Объект Hidden 239 Постепенное изменение цветов 281 Резюме 241 Анимированные командные кнопки 282 Глава 18. Объекты Frame 242 Резюме 284 Глава 22. Каскадные таблицы Объект Frame 242 стилей 285 Создание фреймов 243 Размещение дескрипторов 244 Основные концепции таблиц стилей 285 Добавление JavaScript-кода ко фреймам 246 Стандарты 285 Синхронизация фреймов 247 Наследование 286 Обновления фреймов 249 Границы и заполнение текста пробелами 286 Сценарии для фреймов с картами Комментарии 286 изображений 252 Использование стилей в документах 286 Работа с фреймовыми URL 254 Определение стилей 287