От редактора
От издательства

Предисловие
Что необходимо знать?
Структура книги
Требования
Синтаксический анализ
Приемы JavaScript
Возможные расширения
О программах
Разработка и тестирование
Благодарности

Введение
Достоинства JavaScript
Простота, быстрота изучения, мощность
Повсеместное распространение
Снижение серверной загрузки
Расширение JavaScript
Возможно, у вас нет выбора
И это не все
Основная стратегия программирования на JavaScript
Что должно делать приложение?
Кто будет пользоваться вашей программой?
Как обойти препятствия?
Правила JavaScript в примерах
Многократное использование кода
Изоляция JavaScript
Объявление глобальных переменных и массивов в начале сценария
Объявление конструкторов после глобальных переменных
Определение функций в "хронологическом" порядке
Выполнение отдельной операции каждой функцией
Максимальное использование локальных переменных
Поехали!

Глава 1. Поиск на стороне клиента
Требования
Синтаксический анализ
nav.html
records.js
Глобальные переменные
Функции
HTML
Построение собственной базы данных JavaScript
Возможные расширения
Совместимость с JavaScript 1.0
TANSTAAFL
Повышение надежности
Отображение рекламных баннеров
Расширение возможностей поиска
Кластерные наборы

Глава 2. Онлайновый экзамен
Требования
Синтаксический анализ
index, html - набор фреймов
questions.js - исходный файл JavaScript
administer.html
Основной код HTML
Глобальные переменные
Функции
gradeTest()
Возможные расширения
Повышение надежности
Удаление ответов из массива
Проведение опросов

Глава 3. Интерактивная презентация
Требования
Синтаксический анализ
Переменные приложения
Параметры слоев DHTML по умолчанию
Переменные, зависящие от броузера
Переменные, связанные с изображениями
Переменные режима автоматического просмотра
Функции приложения
Функции работы со слоями
Элементы презентации
Функции, связанные с изображениями
Функции перехода
automate()
Возможные расширения
Случайный выбор слайдов в режиме автоматического просмотра
Анимационные GIF-файлы или переключение изображений в слайдах
Анимация самих слайдов

Глава 4. Интерфейс к различным поисковым системам
Требования
Синтаксический анализ
Переменные и функции
Динамическая предварительная загрузка изображений
Сведения о системах
engineLinks()
imageSwap()
callSearch()
Возможные расширения

Глава 5. ImageMachine
Требования
Синтаксический анализ
Шаг 1. Загрузка страниц
Шаг 2. Ввод количества групп и параметров по умолчанию
Шаг З. Ввод путей файлов/атрибутов HREF и т.д.
Принятие решений
Построение кода
Шаг 4. Интерпретация кода (кнопка Preview)
Шаг 5, Внесение изменений (кнопка Change Info)
Возможные расширения: включение атрибутов в шаблон
Шаг 1. Добавление полей
Шаг 2. Создание массивов в setArrays()
Шаг 3. Заполнение массивов
Шаг 4. Создание текстовых полей в generateEntryForm()
Шаг 5. Обработка и присваивание новых значений в genJavaScript()
Шаг 6. Генерация дополнительного кода HTML в genJavaScript()

Глава 6. Исходные файлы JavaScript
arrays.js
cookies.js
dhtml.js
events.js
frames.js
images.js
navbar.js
numbers.js
objects.js
strings.js
Возможные расширения

Глава 7. Настройка пользовательских параметров на основе cookie
Требования
Синтаксический анализ
prefs.html
Форма настройки параметров
Загрузка сохраненных параметров
Работа с изображениями
Внесение изменений
Восстановление исходного состояния формы
dive.html
Анализ данных cookie
Неизвестные переменные
Возможные расширения
Дополнительные параметры
Темы
Создание пользовательских ссылок
Отображение рекламных баннеров

Глава 8. Электронный магазин
Общие сведения
Шаг 1. Загрузка приложения
Шаг 2. Просмотр и выбор товаров
Шаг 3. Просмотр и изменение заказа
Шаг 4, Оплата заказа
Требования
Синтаксический анализ
Шаг 1. Загрузка Электронного магазина
Переменные верхнего уровня
inventory.js
Шаг 2. Вывод информации о товарах
manager.html
Переменные
Шаг 3. Отображение всех категорий
Отображение первого товара
Шаг 4. Включение товаров в заказ
Поиск товаров
Построение пар "категория/товар
Поиск в базе данных
Поддержка перебора товаров/категорий
Кодирование ссылок
Шаг 5. Изменение заказа/оплата
Построение списков
Подсчет итоговой суммы
Завершение функции showBag(): отображение сумм
Завершение вывода
Что происходит на стороне сервера?
Забытые функции
Возможные расширения
Создание "интеллектуальных" товаров
Улучшенные средства поиска
Поддержка cookie

Глава 9. Шифры и JavaScript
Как работают шифры
Несколько слов о расшифровке
Шифр Цезаря
Шифр Виженера
Требования
Синтаксический анализ
Определение шифра
Определение подстановочного шифра
Выполнение базовой подстановки
Различные подстановки для различных шифров
Изменение shiftIdx
Подстановочный шифр как частный случай
Создание экземпляров SubstitutionCipher
Выбор шифра
Последнее замечание
Возможные расширения

Глава 10. Электронные открытки
Требования
Синтаксический анализ
Документы фреймов
Старые знакомые
По местам!
Отслеживание указателя мыши
Активизация картинок
Перемещение картинок
После загрузки документов
Переменные
Отображение заголовков
Перебор изображений
Сохранение позиций перетащенных картинок
Проверка
Создание открытки
Отправка открытки
Замечание
Работа на стороне сервера
Возможные расширения
Добавление обратной ссылки
Создание тематических подборок
Рекламные баннеры
Интерактивные открытки

Глава 11. Контекстная справка
Требования
Синтаксический анализ
Контекстная справка
Отображение и скрытие дополнительной информации
Создание слоев
Вывод дополнительной информации
Управление расположением слоев
Возможные расширения
Содержание
Поиск в справочных файлах
Спросите знатока
Телефонный справочник

Приложение А. Краткий справочник по JavaScript
Совместимость броузеров
Объекты, методы и свойства
Anchor
Applet
Area
Array
Boolean
Button
Checkbox
Date
Document
Event
FileUpload
Form
Frame
Function
Hidden
History
Image
Java
JavaArray
JavaClass
JavaObject
JavaPackage
Layer
Link
Location
Math
MimeType
Navigator
Netscape
Number
Object
Option
Packages
Password
Plugin
Radio
RegExp
Reset
Screen
Select
String
Submit
sun
Text
Textarea
Window
Свойства и функции верхнего уровня
Обработчики событий
onAbort
onBlur
onChange
onClick
onDblClick
onDragDrop
onError
onFocus
onKeyDown
onKeyPress
onKeyUp
onLoad
onMouseDown
onMouseMove
onMouseOut
onMouseOver
onMouseUp
onMove
onReset
onResize
onSelect
onSubmit
onUnload

Приложение Б. Ресурсы Web
Интересные узлы, использующие JavaScript
Справочная информация по JavaScript
Списки FAQ по JavaScript
Справочная информация по DHTML
Справочная информация по объектным моделям
Справочная информация по Perl/CGI
Графические ресурсы
Аналогичные приложения
Поисковые механизмы на стороне клиента
Онлайновые экзамены
Презентации
Интерфейсы к нескольким поисковым системам
Генераторы переключений
Библиотеки
Cookie
Электронные магазины
Шифры
Перетаскивание
Контекстная справка

Приложение В. Сценарии Perl
Общий обзор Perl/CGI
Чем хорош Perl?
Чем нехорош Perl?
Perl и CGI
Почему мы используем CGI?
Установка Perl
Сценарий для Электронного магазина - bag.pl
Получение информации о товарах
Сохранение информации в файле на сервере
Возвращение страницы с подтверждением
Настройка сценария
Сценарий для Генератора открыток-greet.рl
Настройка сценария
Получение данных
Сохранение открытки в файле с уникальным именем
Вывод подтверждения

Алфавитный указатель