Управление окнами в JavaScript
Задача управления окном браузера обычно возникает не сразу, но мгновенно порождает множество проблем. К сожалению, описываемые в литературе способы действий далеко не всегда отражают реальные потребности пользователей, сложны либо, наоборот, поверхностны. Впрочем и здесь мы разберем только наиболее важное.
Создание нового окна (open)
Команда создания потребуется во всех случаях, когда вы захотите создать окно не пользуясь гиперссылкой, либо когда его свойства должны отличаться от обычных.
Синтаксис:
window.open(["URL", "имя окна", "описание свойств окна", стереть запись о предыдущем URL окна?])
Нужно отметить, что, хотя все четыре аргумента являются необязательными, именно они и определяют результат. Обсудим их подробнее. Метод (функция) open() возвращает ссылку на создаваемое окно, что необходимо сделать, если вы хотите им управлять в дальнейшем.
URL определяет адрес загружаемого в окно документа. Если его оставить пустым, то и окно окажется пустым.
Имя окна представляет то же самое, что и атрибут target тега <a>. Если его не указывать, то откроется безымянное окно, также, как при target="_blank". Присвоение имени позволит в последующем обращаться к нему для вывода информации. Если окно с используемым именем уже существует, то новое создаваться не будет.
Описание свойств окна (основных). Этот аргумент можно назвать наиболее важным. Оформление будет приведено в примере, так что остановимся на перечислении возможных параметров. Обратите внимание, что, если вы задаете хоть один параметр, все остальные получают значения по умолчанию! (Параметр по умолчанию приведен первым и всегда равен нулю.)
Следует заметить, что не все браузеры корректно обрабатывают эти команды.
- width=пикселей — ширина окна.
- height=пикселей — высота окна.
- top=координата (0 для верха)
- left=координата
- status=yes|no или status=1|0 — наличие строки состояния (в нижней части окна).
- resizable=0|1 — разрешить ли пользователю менять размер окна.
- scrollbars=0|1 — можно ли выводить при необходимости полосы прокрутки. Если нет, то, при слишком большом документе, пользователь не увидит его целиком никогда. Если да, то браузер может "сумничать" и разрушить ваш замысел. В качестве альтернативы можно порекомендовать установку resizable=1.
- menubar=0|1 — отображать ли строку меню.
- toolbar=0|1 — отображать ли панель навигации.
- location=0|1 — отображать ли строку адреса.
Указание в качестве значений true или false будет некорректным, так что их использовать не надо.
В последующих примерах окно всегда открывается со считыванием в переменную "w" для последующих обращений, хотя часто можно обойтись и без этого. После изучения открытого окна не забудьте его закрыть!
Просто создадим обычное пустое окно:
w = window.open()
То же самое, но у окна появилось имя для использования в атрибуте target:
w = window.open('','nw')
Зададим размеры окна:
w = window.open('','nw','width=800, height=300')
Добавим строку состояния и возможность изменения размеров:
w = window.open('','nw','width=800, height=300, status=1, resizable=1')
Удалим лишнее (мало места на экране) и добавим панель навигации:
w = window.open('','nw','width=800, height=300, toolbar=1')
Стереть запись о предыдущем URL окна (true или false). Производит корректировку истории перемещений, то есть не позволяет вернуться назад (или оставляет такую возможность).
Метод focus()
Синтаксис:
Синтаксис: