Денни Гудман "JavaScript Библия пользователя"

НАЗАД СОДЕРЖАНИЕ ВПЕРЕД
страница 142

Теперь эта переменная может вполне законно использоваться как ссылка на второе окно. Если нужно получить доступ к одному из его свойств или методов, то следует использовать указанную ссылку как часть полной ссылки. Например, для того чтобы закрыть прямо из сценария главного окна данное подокно, можно воспользоваться методом close().

subWindow.close();

Если в сценарии главного окна используются записи window.close(), self.close или просто close(), то будет закрыто главное окно, а вовсе не дополнительное. Поэтому для обращения к другим окнам следует использовать ссылку на нужное окно как часть общей ссылки. Этот момент важен при составлении, сценариев: часто требуется, чтобы переменная, содержащая ссылку на дополнительное окно, была доступна в течение всего времени, пока главный документ загружен в браузер. Чтобы обеспечить это, следует объявить данную переменную как глобальную, но ни в коем случае не внутри функции (хотя значение этой переменной можно присвоить и в пределах функции). В такой ситуации используйте одну функцию, чтобы открывать окна, а другую - для их закрытия.

Листинг 8.1 описывает страницу, которая содержит кнопку открытия нового, пустого окна, которое впоследствии можно будет закрывать из главного. Вы увидите, как работает сценарий, если зададите размеры главного окна браузера так, чтобы оно не было развернуто во весь экран. Тогда при генерации нового окна можно будет разместить окна на экране таким образом, чтобы новое окно было видно даже в том случае, когда основное находится на переднем плане.

Если окно было при этом "скрыто" за основным, то для его отображения используйте меню Window (Окно) браузера. В листинге 8.1 переменная newWindow объявлена как глобальная, поэтому обе функции - makeNewWindow() и closeNewWindow() - без особых проблем получают к ней доступ. Если переменная объявляется без присвоения ей значения, то по умолчанию оно равно null. Значение null интерпретируется как эквивалентное false в условном операторе. С другой стороны, наличие в условном операторе любого ненулевого значения интерпретируется как true. В функции closeNewWindow() перед использованием метода закрытия close() сначала проверяется, было ли вообще создано новое окно. Затем для выполнения очистки переменной newWindow присваивается значение null, поэтому при повторном щелчке на кнопке Close (Закрыть) закрытия уже несуществующего окна не произойдет.

страница 142
НАЗАД СОДЕРЖАНИЕ ВПЕРЕД

Денни Гудман "JavaScript Библия пользователя"

Только на OZON.ru! Все спецпредложения на DVD Все серии Пуаро

поиск на сайте

Рейтинг@Mail.ru Rambler's Top100 Счетчик тИЦ и PR
Сайт управляется системой uCoz