Оглавление

Оглавление

Введение 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 г.