В главе 13 был описан объект Window и отмечена центральная роль, которую этот объект играет в клиентском JavaScript_коде. Мы видели, что объект Window явля_ ется глобальным объектом для клиентских JavaScript_программ. В этой главе будут рассмотрены свойства и методы объекта Window, позволяющие управлять броузером, его окнами и фреймами.
Здесь рассказывается о том, как:
• Зарегистрировать JavaScript_код для однократного или многократного ис_ полнения в будущем
• Получить URL_адрес документа, отображаемого в окне, и выделить аргумен_ ты запроса из этого URL_адреса
• Заставить броузер загрузить и отобразить новый документ
• Сообщить броузеру о необходимости вернуться на предыдущую или следую_ щую страницу из списка ранее посещавшихся страниц и управлять другими функциями броузера, такими как печать документа
• Открывать новые окна броузера, манипулировать ими и закрывать их
• Выводить простейшие диалоговые окна
• Определять тип броузера, в котором идет исполнение JavaScript_кода, и по_ лучать другие сведения о клиентском программном окружении
• Выводить произвольный текст в строке состояния окна броузера
• Обрабатывать неперехваченные ошибки, возникшие в окне броузера
• Писать JavaScript_код, призванный взаимодействовать с несколькими окна_ ми и фреймами
Следует отметить, что в этой главе много говорится об окнах броузера, но ничего о содержимом, отображаемом в этих окнах. В самом начале развития JavaScript возможности взаимодействия с содержимым документа были весьма ограничен_ ными, а приемы работы с окнами, описываемые в этой главе, были достаточно новыми и необычными. Сегодня, когда существует возможность в полной мере
288 Глава 14. Работа с окнами броузера
управлять содержимым документов (см. главу 15), тема программирования бро_ узера уже не кажется такой захватывающей. Кроме того, некоторые приемы, де_ монстрируемые в этой главе, работают уже не так, как раньше, из_за появив_ шихся ограничений в области безопасности. Другие приемы по_прежнему рабо_ тают, но их востребованность у веб_дизайнеров снизилась, потому они практиче_ ски вышли из употребления.
Хотя на сегодняшний день эта глава в значительной степени утратила свою ак_ туальность, излагаемый здесь материал еще может быть востребован, и я не ре_ комендовал бы пропускать ее. Глава организована так, что наиболее важные све_ дения находятся в начале главы. Ближе к концу описываются менее важные или редко используемые приемы. Лишь один важный и сложный раздел, в кото_ ром описываются приемы организации взаимодействия JavaScript_кода с не_ сколькими окнами и фреймами, приводится в конце главы, а сама глава закан_ чивается полезным примером.