Урок 9. Объект Window
Как было сказано в предыдущем уроке, объект document не является самым старшим в иерархии объектов браузера. В частности, на него можно сослаться следующим образом: window.document, что подразумевает существование объекта старшего уровня window, который соответствует окну браузера. Мы уже использовали этот объект в примере с открытием нового окна методами JavaScript.
Свойства объекта Window
Сведём все основные свойства в таблицу, а потом рассмотрим их подробнее.
frames: |
Массив всех фреймов данного окна |
length: |
Количество фреймов в родительском окне |
name: |
Имя окна |
parent: |
Имя окна, содержащего набор фреймов: способ сослаться на документ, содержащий frameset, из вложенного в него фрейма |
self: |
Имя текущего окна |
status: |
Текущее сообщение, отображаемое в строке состояния браузера |
top: |
Окно самого верхнего уровня |
window: |
Синоним имени текущего окна |
А теперь по пунктам.
Предположим, окно браузера содержит несколько фреймов, имя одного из которых navframe. Чтобы сослаться на него из другого фрейма, заключённого в тот же frameset, используется следующий синтаксис (изменим надпись на кнопке внутри одной из форм, содержащихся в этом фрейме):
parent.navframe.document.forms[0].goButton.value="что_то_там";
Главное понять, что parent есть родительское окно для всех фреймов, заключённых в один frameset, и оно используется для указания пути в общей иерархии к нужному нам объекту. Следующий важный момент заключается в том, что каждый фрейм, будучи по сути независимым HTML-документом, содержит объект document, после которого дальнейший путь к объекту описывается уже знакомым нам способом.
Далее. Один из примеров использования объекта parent.length может оказаться очень полезным для многих начинающих веб-строителей, пользующихся бесплатным хостингом.
<SCRIPT>
if (self.parent.frames.length != 0)
self.parent.location="index.html";
</SCRIPT>
Если страницу, в которую встроен такой скрипт, срабатывающий, скажем, на событие body.onload, пытаться принудительным образом загрузить в frameset (как это делают многие провайдеры бесплатного хостинга), скрипт уничтожит этот frameset, и ваша страница займёт всё доступное место в окне браузера. Правда, никто не гарантирует, что провайдер будет этому рад и не выгонит вас вон.
Осталось совсем немного
объект self используется тогда, когда нужно сослаться на текущее окно, не называя его по имени явно. Объект top позволяет сослаться на окно самого верхнего уровня из фрейма любого уровня вложенности. Объект window, в принципе, означает то же самое, что и self, но иногда эти определения не взаимозаменяемы, о чём у нас с вами ещё будет возможность поговорить.
Наконец объект status позволяет нам вернуть значение строки состояния браузера или записать туда собственное.
Методы объекта Window
Перечислю главные:
alert: |
Вывод диалога с сообщением и кнопкой ОК |
close: |
Закрытие окна |
confirm: |
Вывод диалога с кнопками ОК и Cancel |
open: |
Открытие окна |
prompt: |
Вывод диалога с полем ввода |
setTimeout: |
Установка таймера |
clearTimeout: |
Сброс таймера |
Использовать метод alert очень просто: вы пишете в коде
alert("Вы попали на мою веб-страницу");
и получаете диалоговое окно, выглядящее следующим образом:
То, что я привёл именно такой пример, не означает, что вам действительно нужно писать скрипт, который будет приветствовать посетителей подобным образом. В таком случае количество уникальных посетителей страницы всегда будет равняться общему количеству визитов, т. к. в эту воду точно никто не захочет вступать дважды. ;-)
Метод confirm обычно используют примерно так:
if (confirm("Хотите увидеть новые фотографии?")) {
window.location.href="newphotos.htm";
}
else {
window.location.href="oldphotos.htm";
}
Диалоговое окно, возникающее в результате работы такого скрипта, показано на картинке ниже.
А вот пример использования метода prompt:
pass=prompt("Cообщение","Строка_ввода_по_умолчанию");
Так переменной pass передаётся значение пароля, возвращаемое диалоговым окном. Само окно показано на рисунке ниже.
Метод close вызывается строкой wndName.close();, где wndName имя окна, которое нужно закрыть.
О методе open на этот раз поговорим поподробнее. Один из вариантов записи выглядит так:
wndMyWin = open("имя_HTML-файла","имя_окна", "параметры_окна");
Основные параметры приведены в таблице:
toolbar: |
Если значение параметра равно yes или 1, окно снабжается панелью инструментов, если же значение равно no или 0, панели инструментов не будет. |
location: |
Параметр определяет, будет ли отображаться поле ввода адреса документов |
status: |
Отображение строки состояния |
menubar: |
Отображение линейки меню |
scrollbars: |
Отображение полос прокрутки |
resizable: |
Параметр определяет, можно ли будет изменять размер создаваемого окна |
width: |
Ширина окна в пикселах |
height: |
Высота окна в пикселах |
Таким образом, типичный вызов этого метода будет выглядеть примерно так:
wndMyWin = open("имя_HTML-файла","имя_окна",
"toolbar=no,menubar=no,width=150,height=300");
Значения всех параметров, кроме width и height, определяются так же, как это уже описано в первой строке таблицы.
Теперь о таймерах. Метод setTimeout создаёт и запускает таймер, возвращая его идентификатор.
var command="MyFunctionn()";
idTimer=window.setTimeout(command,1000);
Время задержки в приведённом примере составляет 10 секунд, по прошествии этого времени запускается функция MyFunction.
Метод clearTimeour останавливает таймер, запущенный методом setTimeout:
clearTimeout(idTimer);
Эти два метода очень полезны для периодического вызова определённых функций или организации анимации средствами JavaScript.
Урок 8. Объектная модель документа | Урок 10. Таблицы
наверх
|