Методы объекта window
10.3.1window.open(). Метод open() предназначен для создания новых окон. В общем случае его синтаксис выглядит следующим образом:
myWin = window.open("URL","имя_окна","параметр=значение,параметр=значение,...", заменить); |
Первый аргумент задает адрес страницы, загружаемой в новое окно (можно оставить пустую строку, тогда окно останется пустым).
Второй аргумент задает имя окна, которое можно будет использовать в атрибуте TARGET контейнеров <A> и <FORM>. В качестве значений допустимы также зарезервированные имена _blank, _parent, _self, _top, смысл которых такой же, как у аналогичных значений атрибута TARGET. Если имя_окна совпадает с именем уже существующего окна (или фрейма), то новое окно не создается, а все последующие манипуляции с переменной myWin будут применяться к этому окну(или фрейму).
Третий аргумент есть не содержащая пробелов строка, представляющая собой список параметров и их значений, перечисленных через запятую. Указание каждого из параметров необязательно, однако значения по умолчанию могут зависеть от браузера, поэтому всегда указывайте явно те параметры, на которые рассчитываете. Возможные параметры перечислены в таблице 10.2. Вместо значений yes и no можно использовать 1 и 0.
Таблица 10.2 – Параметры третьего аргумента метода window.open()
Параметр | Значения | Описание |
width | число | Ширина окна в пикселах (не менее 100) |
height | число | Высота окна в пикселах (не менее 100) |
left | число | Расстояние от левого края экрана до левой границы окна в пикселах |
top | число | Расстояние от верхнего края экрана до верхней границы окна в пикселах |
directories | yes/no | Наличие у окна панели папок (Netscape Navigator) |
location | yes/no | Наличие у окна поля адреса |
menubar | yes/no | Наличие у окна панели меню |
resizable | yes/no | Сможет ли пользователь менять размер окна |
scrollbars | yes/no | Наличие у окна полос прокрутки |
status | yes/no | Наличие у окна поля статуса |
toolbar | yes/no | Наличие у окна панели инструментов |
Последний аргумент "заменить" является необязательным, принимает значения true и false и означает: следует ли новый URL добавить в history в качестве нового элемента или заменить им последний элемент history.
Метод window.open() возвращает ссылку на вновь открытое окно, т.е. объект класса Window. Его можно присвоить переменной, с тем чтобы потом можно было управлять открытым окном.
Приведем два примера открытия нового окна:
<FORM> <INPUT TYPE=button VALUE="Простое окно" onClick="window.open('', 'test1', 'directories=no,height=200,location=no,'+ 'menubar=no,resizable=no,scrollbars=no,'+ 'status=no,toolbar=no,width=200');"> <INPUT TYPE=button VALUE="Сложное окно" onClick="window.open('', 'test2', 'directories=yes,height=200,location=yes,'+ 'menubar=yes,resizable=yes,scrollbars=yes,'+ 'status=yes,toolbar=yes,width=200');"> </FORM> |
При нажатии кнопки "Простое окно" получаем окно со следующими параметрами:
- directories=no — окно без панели папок;
- height=200 — высота 200px;
- location=no — поле адреса отсутствует;
- menubar=no — без меню;
- resizable=no — размер окна изменять нельзя;
- scrollbars=no — полосы прокрутки отсутствуют;
- status=no — статусная строка отсутствует;
- toolbar=no — системные кнопки браузера отсутствуют;
- width=200 — ширина 200px.
При нажатии кнопки "Сложное окно" получаем окно, где:
- directories=yes — окно с панелью папок;
- height=200 — высота 200 px;
- location=yes — поле адреса есть;
- menubar=yes — меню есть;
- resizable=yes — размер изменять можно;
- scrollbars=yes — есть полосы прокрутки;
- status=yes — статусная строка есть;
- toolbar=yes — системные кнопки браузера есть;
- width=200 — ширина 200px.
10.3.2 Метод close(). Метод window.close().позволяет закрыть окно. Чаще всего возникает вопрос, какое из окон, собственно, следует закрыть. Если необходимо закрыть текущее, то:
window.close(); self.close(); |
Если мы открыли окно с помощью метода window.open(), то из скрипта, работающего в новом окне, сослаться на окно-родитель можно с помощью window.opener. Поэтому, если необходимо закрыть родительское окно, т.е. окно, из которого было открыто текущее, то используется метод:
window.opener.close();
Если необходимо закрыть произвольное окно, то тогда сначала нужно получить его идентификатор:
id=window.open(); ... id.close(); |
Как видно из последнего примера, закрывают окно не по имени, а используют указатель на объект.
10.3.3 Методы focus() и blur(). Метод focus() применяется для передачи фокуса в окно, с которым он использовался. Передача фокуса полезна как при открытии окна, так и при его закрытии, например:
myWin.focus(); |
Поскольку мы пишем содержание нового окна из окна старого (родителя), то в качестве указателя на объект используем значение переменной myWin.
Чтобы увести фокус из определенного окна myWin, необходимо применить метод myWin.blur(). Например, чтобы увести фокус с текущего окна, где выполняется скрипт, нужно вызвать window.blur(). Эффект будет тот же, как если бы пользователь сам свернул окно нажатием кнопки в правом верхнем углу окна.
Дата добавления: 2017-02-20; просмотров: 498;