Вход Регистрация
Файл: www/ycheb/js_teach/windows.php
Строк: 304
<?php  
include '../../config.php';
$title='Учебник JavaScript';
aut();
head();

 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<phpl<TITLE>Использование Окон и Фрэймов</TITLE>
<BODY>
<h5><a href="contents.php">Оглавление</a> | <a href="navobj.php">Назад</a>
| <a href="advtopic.php">Вперёд</a> | <a href="bklast.php">Индекс</a></h5>
<HR><h1>Глава 12<BR><a name="996824"></a>Использование Окон и Фрэймов</h1><p><A NAME="1011668"></a>
JavaScript позволяет создавать окна и фрэймы для представления HTML-содержимого. 
Объект window является объектом верхнего уровня в иерархии клиентского JavaScript; 
объект Frame похож на объект window, но соответствует "подокну" и создаётся тэгом FRAME в документе с тэгом FRAMESET.</p>
<p><A NAME="1011686"></a>В главе имеются следующие разделы:</p><ul><LI><A NAME="1011687"></a>
<A HREF="#1012749">Открытие и закрытие окон</a><A HREF="#1012749"></a></LI><LI><A NAME="1011688"></a>
<A HREF="#1004240">Использование фрэймов</a></LI><LI><A NAME="1011941"></a>
<A HREF="#1004300">Обращение к окнам и фрэймам</a></LI><LI><A NAME="1011950"></a>
<A HREF="#1004326">Навигация по окнам и фрэймам</a></LI></ul><BLOCKQUOTE>
<p><B>ПРИМЕЧАНИЕ: </B><A NAME="1011468"></a>Эта книга не содержит информации о слоях/layers, которые были введены в JavaScript 1.2.<br>
О слоях см. <EM> <A HREF="http://developer.netscape.com/docs/manuals/communicator/dynphpl/index.php" TARGET="_top">Dynamic HTML in Netscape 
Communicator</a></EM>.</p></BLOCKQUOTE><H2><A NAME="Opening and Closing Windows"><A NAME="1012749"></a>
Открытие и закрытие окон</H2><hr><p><A NAME="1012750"></a>
Окно создаётся автоматически при запуске Navigator'а; Вы 
можете открыть другое окно, выбрав New и Navigator Window в меню File. Вы можете 
закрыть окно, выбрав Close или Exit в меню File. Вы можете также открывать и закрывать окна программно с помощью JavaScript.</p>
<H3><A NAME="Head2;"></a><A NAME="1004224"></a>Открытие окна</H3><hr><p><A NAME="1004225"></a>
Можно создать окно методом <CODE>open</CODE>. Следующий оператор создаёт окно <CODE>msgWindow</CODE>, 
которое отображает содержимое файла <CODE>sesame.phpl</CODE>:</p>
<PRE><A NAME="1004226"></a>msgWindow=window.open("sesame.phpl")</PRE><p><A NAME="1004227"></a>
Следующий оператор создаёт окно <CODE>homeWindow</CODE>, которое отображает 
домашнюю страницу Netscape:</p><PRE><A NAME="1004228"></a>homeWindow=window.open("http://home.netscape.com")</PRE>
<p><A NAME="1006632"></a>Окно может иметь два имени. Следующий оператор создаёт окно с двумя именами. 
Первое имя, <CODE>msgWindow</CODE>, это переменная, которая ссылается на объект <CODE>window</CODE>. 
Этот объект содержит информацию о свойствах, методах и контейнерах окна. При 
создании окна Вы можете также предоставить второе имя, в данном случае - <CODE>displayWindow</CODE>, 
для обращения к окну как к цели/target при отправке формы или при переходе по гиперссылке.</p>
<PRE><A NAME="1004230"></a>msgWindow=window.open("sesame.phpl","displayWindow")</PRE>
<p><A NAME="1004231"></a>Имя окна не требуется при создании окна. Но окно обязано иметь имя, если Вы 
хотите обратиться к нему из другого окна. </p><p><A NAME="1005000"></a>
При открытии окна Вы можете специфицировать атрибуты, такие как высота/height и 
ширина/width, панель утилит/toolbar, адресная строка/location field или полосы 
прокрутки/scrollbars. Следующий оператор создаёт окно без панели утилит, но с полосами прокрутки:</p>
<PRE><A NAME="1004232"></a>msgWindow=window.open<br>&nbsp;&nbsp;&nbsp;("sesame.phpl","displayWindow","toolbar=no,scrollbars=yes")</PRE>
<p><A NAME="1009329"></a>Об именах окно см. дополнительно <A HREF="#1004300">"Обращение к окнам 
и фрэймам"</a>. Об атрибутах окна см. метод <CODE>open</CODE> объекта <CODE>window</CODE> 
в книге <I><a TARGET="_top" href="../clientref13/index.php">Клиентский JavaScript.
</a></I><a href="../clientref13/index.php"><i>Справочник</i></a>.</p><H3><A NAME="Head2;"></a>
<A NAME="1004234"></a>Закрытие окна</H3><hr><p><A NAME="1005823"></a>Вы можете закрыть окно методом <CODE>close</CODE>. Вы не можете закрыть фрэйм, 
не закрыв родительское окно.</p><p><A NAME="1005824"></a>Каждый из следующих операторов закрывает текущее окно:</p>
<PRE><A NAME="1005825"></a>window.close()<br>self.close()<br>close()</PRE><p><A NAME="1009436"></a>
Не используйте третью форму, <CODE>close()</CODE>, в обработчиках событий. В 
зависимости от того, как JavaScript вычисляет объект, на который ссылается вызов 
метода, Вы можете получить в обработчике не тот объект.</p><p><A NAME="1009437"></a>
Следующий оператор закрывает окно <CODE>msgWindow</CODE>:</p><PRE><A NAME="1009438"></a>msgWindow.close()</PRE>
<H2><A NAME="Using Frames"><A NAME="1004240"></a>Использование фрэймов</H2><hr><p><A NAME="1007978"></a>
<b>Набор фрэймов/frameset</b> это специальный тип окна, в котором выводятся 
несколько независимо прокручиваемых <B>фрэймов/кадров/frames</B> в одном экране, каждый 
со своим собственным URL. Фрэймы набора фрэймов могут указывать на различные URL 
и могут быть целями для других URL, все в одном окне. Серия фрэймов в <I>наборе фрэймовframeset </I>образует HTML-страницу.</p>
<p><A NAME="1007980"></a>На рисунке показано окно с тремя фрэймами. Левый фрэйм называется <CODE>listFrame</CODE>; 
правый - <CODE>contentFrame</CODE>; нижний - <CODE>navigateFrame</CODE>.</p><h6><A NAME="1009685"></a>
Рисунок 12.1 &nbsp;&nbsp;Страница с фрэймами</h6><P>
<IMG SRC="graphics/frame.gif" width="600" height="352"></a></P>
<H3><A NAME="Head2;"></a><A NAME="1004244"></a>Создание фрэйма</H3><hr><p><A NAME="1004245"></a>
Вы создаёте фрэйм тэгом <CODE>FRAMESET</CODE> в HTML-документе; единственное 
предназначение этого тэга - определить фрэймы на странице.</p><p><A NAME="1004246"></a>
<B>Пример 1.</B> Следующий оператор создаёт frameset, показанный ранее на рисунке:</p>
<PRE><A NAME="1004247"></a>&lt;FRAMESET ROWS="90%,10%"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAMESET COLS="30%,70%"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=category.phpl NAME="listFrame"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=titles.phpl NAME="contentFrame"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/FRAMESET&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=navigate.phpl NAME="navigateFrame"&gt;<br>&lt;/FRAMESET&gt;</PRE>
<p><A NAME="1004248"></a>На следующем рисунке показана иерархия фрэймов. Все три фрэйма имеют общего 
родителя, хотя два фрэйма определены в отдельном frameset. Это из-за того, что 
родителем фрэйма является родительское окно, и фрэйм, а не frameset, определяет окно.</p>
<h6><A NAME="1009849"></a>Рисунок 12.2 &nbsp;&nbsp;Пример иерархии фрэймов</h6>
<P><IMG SRC="graphics/hier_01.gif" width="196" height="119"></a></P><p><A NAME="1004250"></a>
Вы можете обратится к фрэймам, используя массив <CODE>frames</CODE> так, как 
показано ниже. (О массиве <CODE>frames</CODE> см. объект <CODE>window</CODE> в 
книге <I><a TARGET="_top" href="../clientref13/index.php">Клиентский JavaScript.
</a></I><a href="../clientref13/index.php"><i>Справочник</i></a>.)</p><ul><LI><A NAME="1004251"></a>
<CODE>listFrame</CODE> is <CODE>top.frames[0]</CODE></LI><LI><A NAME="1004252"></a>
<CODE>contentFrame</CODE> is <CODE>top.frames[1]</CODE></LI><LI><A NAME="1004253"></a>
<CODE>navigateFrame</CODE> is <CODE>top.frames[2]</CODE></LI></ul><p><A NAME="1004254"></a>
<B>Пример 2.</B> Альтернативно Вы можете создать окно типа вышеприведённого, в 
котором два верхних фрэйма имеют родителя отдельно от <CODE>navigateFrame</CODE>. 
Набор фрэймов/frameset верхнего уровня может быть определён так:</p>
<PRE><A NAME="1004255"></a>&lt;FRAMESET ROWS="90%,10%"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=muskel3.phpl NAME="upperFrame"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=navigate.phpl NAME="navigateFrame"&gt;<br>&lt;/FRAMESET&gt;</PRE>
<p><A NAME="1004256"></a>Файл <CODE>muskel3.phpl</CODE> содержит каркас верхних фрэймов и определяет 
следующий frameset:</p><PRE><A NAME="1004257"></a>&lt;FRAMESET COLS="30%,70%"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=category.phpl NAME="listFrame"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;FRAME SRC=titles.phpl NAME="contentFrame"&gt;<br>&lt;/FRAMESET&gt;</PRE>
<p><A NAME="1004258"></a>На следующем рисунке показана иерархия фрэймов.<br><CODE>upperFrame</CODE> и <CODE>navigateFrame</CODE> имеют общего родителя - 
окно <CODE>top</CODE>.<br><CODE>listFrame</CODE> и <CODE>contentFrame</CODE> - имеют общего родителя<CODE> upperFrame</CODE>.</p>
<h6><A NAME="1009900"></a>Рисунок 12.3 &nbsp;&nbsp;Ещё один пример иерархии фрэймов</h6>
<P><IMG SRC="graphics/hier_02.gif" width="305" height="128"></a></P><p><A NAME="1005340"></a>
Вы можете обратится к предыдущим фрэймам, используя массив <CODE>frames</CODE> 
так, как показано ниже. (О массиве <CODE>frames</CODE> см. объект <CODE>window</CODE> 
в книге <I><a TARGET="_top" href="../clientref13/index.php">Клиентский JavaScript.
</a></I><a href="../clientref13/index.php"><i>Справочник</i></a>.)</p>
<ul><LI><A NAME="1004261"></a><CODE>upperFrame</CODE> это <CODE>top.frames[0]</CODE></LI><LI><A NAME="1004262"></a>
<CODE>navigateFrame</CODE> это <CODE>top.frames[1]</CODE></LI><LI><A NAME="1004263"></a>
<CODE>listFrame</CODE> это <CODE>upperFrame.frames[0]</CODE> или <CODE>top.frames[0].frames[0]</CODE></LI><LI><A NAME="1004264"></a>
<CODE>contentFrame</CODE> это <CODE>upperFrame.frames[1]</CODE> или <CODE>top.frames[0].frames[1]</CODE></LI></ul>
<p><A NAME="1006778"></a>Пример создания фрэймов см. в разделе <A HREF="#1004274">"Создание и Обновление 
Фрэймов: Пример"</a>.</p><H3><A NAME="Head2;"></a><A NAME="1004265"></a>Обновление фрэйма</H3><hr><p><A NAME="1004266"></a>
Вы может обносить содержимое фрэйма с помощью свойства <CODE>location</CODE>, установив URL.</p><p><A NAME="1004267"></a>
Например, Вы используете frameset, описанный в Примере 2 в предыдущем разделе. 
Если Вы хотите, чтобы пользователи могли закрывать фрэйм, содержащий алфавитный 
список артистов или список по категориям (во фрэйме <CODE>listFrame</CODE>) и 
вид только названий произведений, отсортированных по музыкантам (в данный момент 
- во фрэйме <CODE>contentFrame</CODE>), Вы можете добавить следующую функцию в <CODE>navigateFrame</CODE>:</p>
<PRE><A NAME="1004270"></a>&lt;INPUT TYPE="button" VALUE="Titles Only"<br>&nbsp;&nbsp;&nbsp;onClick="top.frames[0].location='artists.phpl'"&gt;</PRE>
<p><A NAME="1004271"></a>Когда пользователь щёлкает по этой кнопке, файл <CODE>artists.phpl</CODE> 
загружается во фрэйм <CODE>upperFrame</CODE>; фрэймы <CODE>listFrame</CODE> и <CODE>contentFrame</CODE> 
закрываются и больше не существуют.</p><H3><A NAME="Head2;"></a><A NAME="1004272"></a>Обращение к фрэймам и навигация по ним</H3>
<hr><p><A NAME="1004273"></a>Поскольку фрэймы являются типом окна, Вы обращаетесь к фрэймам и перемещаетесь 
по ним, как по окнам. См. <A HREF="#1004300">"Обращение к Окнам и Фрэймам"</a> и <A HREF="#1004326">"Навигация по 
Окнам и Фрэймам"</a>.</p><H3><A NAME="Head2;"></a><A NAME="1004274"></a>Создание и обновление фрэймов: пример</H3>
<hr><p><A NAME="1004275"></a>Если Вы создаёте набор фрэймов/frameset из предыдущего раздела для представления 
информации музыкального клуба, фрэймы и их HTML-файлы могут иметь следующее содержимое:</p>
<ul><LI><A NAME="1004276"></a><CODE>category.phpl</CODE>, во фрэйме <CODE>listFrame</CODE>, содержит список 
музыкантов, отсортированный по категориям.</LI><LI><A NAME="1004277"></a>
<CODE>titles.phpl</CODE>, во фрэйме <CODE>contentFrame</CODE>, содержит 
алфавитный список музыкантов и произведений каждого.</LI><LI><A NAME="1004278"></a>
<CODE>navigate.phpl</CODE>, во фрэйме <CODE>navigateFrame</CODE>, содержит 
гипертекстовые ссылки для выбора представления музыкантов в списке <CODE>listFrame</CODE>: по алфавиту или по категориям. Также в это файле имеется ссылка на описание 
музыкантов.</LI><LI><A NAME="1004279"></a>Дополнительный файл, <CODE>alphabet.phpl</CODE>, содержит список музыкантов, 
отсортированный по алфавиту. Этот файл выводится во фрэйме <CODE>listFrame</CODE>, 
если пользователь щёлкает по гиперссылке для отображения в алфавитном порядке.</LI></ul><p><A NAME="1004282"></a>
Файл <CODE>category.phpl</CODE> (список по категориям) содержит код типа такого:</p>
<PRE><A NAME="1004283"></a>&lt;B&gt;Music Club Artists&lt;/B&gt;<br>&lt;P&gt;&lt;B&gt;Jazz&lt;/B&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0001 TARGET="contentFrame"&gt;Toshiko Akiyoshi&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0006 TARGET="contentFrame"&gt;John Coltrane&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0007 TARGET="contentFrame"&gt;Miles Davis&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0010 TARGET="contentFrame"&gt;Dexter Gordon&lt;/A&gt;</PRE><PRE><A NAME="1009087"></a>&lt;P&gt;&lt;B&gt;Soul&lt;/B&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0003 TARGET="contentFrame"&gt;Betty Carter&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0004 TARGET="contentFrame"&gt;Ray Charles&lt;/A&gt;<br>...</PRE>
<p><A NAME="1004284"></a>Файл <CODE>alphabet.phpl</CODE> (алфавитный список) содержит код типа такого:</p>
<PRE><A NAME="1004285"></a>&lt;B&gt;Music Club Artists&lt;/B&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0001 TARGET="contentFrame"&gt;Toshiko Akiyoshi&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0002 TARGET="contentFrame"&gt;The Beatles&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0003 TARGET="contentFrame"&gt;Betty Carter&lt;/A&gt;<br>&lt;LI&gt;&lt;A HREF=titles.phpl#0004 TARGET="contentFrame"&gt;Ray Charles&lt;/A&gt;<br>...</PRE>
<p><A NAME="1004286"></a>Файл <CODE>navigate.phpl</CODE> (ссылки внизу экрана) содержит код типа 
нижеприведённого. Обратите внимание, что target для файла <CODE>artists.phpl</CODE> 
это "_parent." Если пользователь щёлкает по гиперссылке, все окно 
перерисовывается, потому что окно <CODE>top</CODE> является родителем для <CODE>navigateFrame</CODE>.</p>
<PRE><A NAME="1004287"></a>&lt;A HREF=alphabet.phpl TARGET="listFrame"&gt;&lt;B&gt;Alphabetical&lt;/B&gt;&lt;/A&gt;<br>&amp;nbsp&amp;nbsp&amp;nbsp<br>&lt;A HREF=category.phpl TARGET="listFrame"&gt;&lt;B&gt;By category&lt;/B&gt;&lt;/A&gt;<br>&amp;nbsp&amp;nbsp&amp;nbsp<br>&lt;A HREF="artists.phpl" TARGET="_parent"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;B&gt;Musician Descriptions&lt;/B&gt;&lt;/A&gt;</PRE>
<p><A NAME="1004288"></a>Файл <CODE>titles.phpl</CODE> (главный файл, отображаемый в правом фрэйме) 
содержит код типа такого:</p>
<PRE><A NAME="1005992"></a>&lt;A NAME="0001"&gt;&lt;H3&gt;Toshiko Akiyoshi&lt;/H3&gt;&lt;/A&gt;<br>&lt;P&gt;Interlude</PRE><PRE><A NAME="1009115"></a>&lt;A NAME="0002"&gt;&lt;H3&gt;The Beatles&lt;/H3&gt;&lt;/A&gt;<br>&lt;P&gt;Please Please Me</PRE><PRE><A NAME="1009118"></a>&lt;A NAME="0003"&gt;&lt;H3&gt;Betty Carter&lt;/H3&gt;&lt;/A&gt;<br>&lt;P&gt;Ray Charles and Betty Carter<br>...</PRE>
<H2><A NAME="Referring to Windows and Frames"><A NAME="1004300"></a>Обращение к окнам и фрэймам</H2><hr>
<p><A NAME="1004301"></a>Имя, используемое Вами для обращения к окну, 
зависит того, ссылаетесь ли Вы на свойства, методы и обработчики окна, или 
ссылаетесь на окно как на цельtarget при отправке формы или для гиперссылок.</p><p><A NAME="1005205"></a>
Поскольку объект <CODE>window</CODE> это объект верхнего уровня в иерархии 
клиентского JavaScript, он работает исключительно как контейнер объектов в любом окне.</p>
<H3><A NAME="Head2;"></a><A NAME="1004302"></a>Обращение к свойствам, методам и обработчикам</H3><hr><p><A NAME="1004303"></a>
Вы можете обратится к свойства, методам и обработчикам текущего или другого 
окна (если другое окно именовано) через использование одной из следующих техник:</p><ul><LI><A NAME="1004304"></a>
<CODE>self</CODE> или <CODE>window</CODE>: <CODE>self</CODE> и <CODE>window</CODE>
являются синонимами текущего окна, и Вы можете использовать их по выбору для 
обращения к текущему окну. Например, Вы можете закрыть текущее окно, вызвав <CODE>window.close()</CODE>
или <CODE>self.close()</CODE>.</LI><LI><A NAME="1004305"></a>
<CODE>top</CODE> или <CODE>parent</CODE>: <CODE>top</CODE> и <CODE>parent</CODE> 
также являются синонимами, которые могут использоваться как имена окна.<br>
<CODE>top</CODE> можно использовать для любого окна; оно ссылается на самое верхнее окно Navigator'а.<br>
<CODE>parent</CODE> можно использовать для фрэйма; оно ссылается на окно с 
тэгом frameset, содержащее данный фрэйм. Например, для фрэйма <CODE>frame1</CODE>, 
оператор <CODE>parent.frame2.document.bgColor="teal"</CODE> изменяет фон 
фрэйма <CODE>frame2</CODE> на teal, где <CODE>frame2</CODE> это дочерний фрэйм текущего frameset.</LI><LI><A NAME="1004306"></a>
Имя переменной окна: переменная окна это переменная, специфицированная при 
открытии окна. Например, <CODE>msgWindow.close()</CODE> закрывает окно <CODE>msgWindow</CODE>.</LI><LI><A NAME="1005750"></a>
Отсутствие имени окна: поскольку существование текущего окна подразумевается, Вы 
не обязаны обращаться к окну по имени, когда вызываете его методы и 
присваиваете значения свойств. Например, <CODE>close()</CODE> закрывает 
текущее окно. Однако, когда Вы открываете или закрываете окно обработчиком 
события, Вы обязаны специфицировать <CODE>window.open()</CODE> или <CODE>window.close()</CODE> 
вместо простого <CODE>open()</CODE> или <CODE>close()</CODE>. Из-за области 
видимости static-объектов в JavaScript, вызов <CODE>close()</CODE> без 
специфицирования имени объекта эквивалентен <CODE>document.close()</CODE>.</LI></ul><p><A NAME="1004308"></a>
Дополнительно об этих техниках см. объект <CODE>window</CODE> в книге <I>
<a TARGET="_top" href="../clientref13/index.php">Клиентский JavaScript. </a></I>
<a href="../clientref13/index.php"><i>Справочник</i></a>.</p><p><A NAME="1004310"></a>
<B>Пример 1: обращение к текущему окну.</B> Следующий оператор ссылается на 
форму <CODE>musicForm</CODE> в текущем окне. Оператор выводит диалог alert, если 
переключатель/checkbox отмечен.</p>
<PRE><A NAME="1004311"></a>if (document.musicForm.checkbox1.checked) {<br>&nbsp;&nbsp;&nbsp;alert('The checkbox on the musicForm is checked!')}</PRE>
<p><A NAME="1004312"></a><B>Пример 2: обращение к другому окну.</B> Следующие операторы ссылаются на 
форму <CODE>musicForm</CODE>, находящуюся в окне <CODE>checkboxWin</CODE>. 
Операторы определяют, выбран ли checkbox, выбирают checkbox, определяют, выбрана 
ли вторая опция объекта <CODE>Select</CODE>, и выбирают вторую опцию объекта <CODE>Select</CODE>. 
Даже если значения объектов изменяются в другом окне (<CODE>checkboxWin</CODE>), 
текущее окно остаётся активным: отметка переключателя и выбор selection-опции не передают фокус окну.</p>
<PRE><A NAME="1005918"></a>// определить, отмечен ли checkbox<br>if (checkboxWin.document.musicForm.checkbox2.checked) {<br>&nbsp;&nbsp;&nbsp;alert('The checkbox on the musicForm in checkboxWin is checked!')}</PRE><PRE><A NAME="1008967"></a>// отметить checkbox<br>checkboxWin.document.musicForm.checkbox2.checked=true</PRE><PRE><A NAME="1008968"></a>// определить, выбрана ли опция объекта Select<br>if (checkboxWin.document.musicForm.musicTypes.options[1].selected)<br>&nbsp;&nbsp;&nbsp;{alert('Option 1 is selected!')}</PRE><PRE><A NAME="1008969"></a>// выбрать опцию объекта Select<br>checkboxWin.document.musicForm.musicTypes.selectedIndex=1</PRE>
<p><A NAME="1005919"></a><B>Пример 3: обращение к фрэйму в другом окне.</B> Следующий оператор обращается 
к фрэйму <CODE>frame2</CODE>, который находится в окне <CODE>window2</CODE>. 
Оператор изменяет цвет фона <CODE>frame2</CODE> на violet. Имя фрэйма, <CODE>frame2</CODE>, 
обязано быть специфицировано в тэге <CODE>FRAMESET</CODE>, создающем набор фрэймов.</p>
<PRE><A NAME="1004315"></a>window2.frame2.document.bgColor="violet"</PRE>
<H3><A NAME="Head2;"></a><A NAME="1004316"></a>Обращение к окну при отправке формы или из гиперссылки</H3>
<hr><p><A NAME="1004317"></a>Вы используете имя окна (не переменную окна) при обращении к окну как к цели/target 
при отправке формы или из гиперссылки (атрибут <CODE>TARGET</CODE> тэга <CODE>FORM</CODE> 
или <CODE>A</CODE>). Специфицируемое окно это окно, в которое загружается ссылка, или, для формы, окно, где выводится ответ сервера.</p>
<p><A NAME="1004318"></a>Следующий пример создаёт гиперссылку на второе окно. Имеется кнопка, которая 
открывает пустое окно <CODE>window2</CODE>, гиперссылка, загружающая файл <CODE>doc2.phpl</CODE> 
во вновь открытое окно, и кнопка, закрывающая окно. </p>
<PRE><A NAME="1004319"></a>&lt;FORM&gt;<br>&lt;INPUT TYPE="button" VALUE="Open Second Window"<br>&nbsp;&nbsp;&nbsp;onClick="msgWindow=window.open('','window2',<br>&nbsp;&nbsp;&nbsp;'resizable=no,width=200,height=200')"&gt;<br>&lt;P&gt;<br>&lt;A HREF="doc2.phpl" TARGET="window2"&gt; Load a file into window2&lt;/A&gt;<br>&lt;P&gt;<br>&lt;INPUT TYPE="button" VALUE="Close Second Window"<br>&nbsp;&nbsp;&nbsp;onClick="msgWindow.close()"&gt;<br>&lt;/FORM&gt;</PRE>
<p><A NAME="1009566"></a>Если пользователь выбирает сначала кнопку Open Second Window, а затем 
гиперссылку, Communicator открывает небольшое окно, специфицированное в кнопке, 
а затем загружает в него файл <CODE>doc2.phpl</CODE>.</p><p><A NAME="1009591"></a>
Если пользователь выбирает гиперссылку до создания окна <CODE>window2</CODE> с 
помощью кнопки, Communicator создаёт <CODE>window2</CODE> с параметрами по 
умолчанию и загружает <CODE>doc2.phpl</CODE> в это окно.
Если пользователь позднее щёлкает кнопку Open Second Window button, Communicator 
изменяет параметры уже открытого окна на специфицированные в обработчике события.</p>
<H2><A NAME="Navigating Among Windows and Frames"><A NAME="1004326"></a>Навигация по окнам и фрэймам</H2><hr>
<p><A NAME="1006791"></a>Несколько окон Navigator'а могут быть открыты в одно 
время. Пользователь может перемещаться между этими окнами, щёлкая по ним, чтобы 
сделать активными, или передавая им фокус. Если окно имеет фокус, оно переходит 
на передний план и несколько изменяет свой вид. Например, может измениться цвет 
строки заголовка. Визуальное расположение зависит от используемой платформы.</p><p><A NAME="1005952"></a>
Вы можете передать фокус окну программно, передавая фокус объекту в этом окне 
или специфицируя окно как цель гиперссылки. Хотя Вы можете изменять значения 
объектов в другом окне, это не сделает второе окно активным: активным останется текущее окно.</p><p><A NAME="1009555"></a>
Вы перемещаетесь по фрэймам так же, как по окнам.</p><p><A NAME="1004329"></a>
<B>Пример 1: передача фокуса объекту в другом окне.</B> Следующий оператор 
передаёт фокус <CODE>Text</CODE>-объекту <CODE>city</CODE> в окне <CODE>checkboxWin</CODE>. 
Поскольку <CODE>Text</CODE>-объект получает фокус, окно также получает фокус и становится 
активным. В примере имеется также оператор, создающий окно <CODE>checkboxWin</CODE>.</p>
<PRE><A NAME="1004330"></a>checkboxWin=window.open("doc2.phpl")<br>...<br>checkboxWin.document.musicForm.city.focus()</PRE>
<p><A NAME="1004331"></a><B>Пример 2: передача фокуса другому окну с использованием гиперссылки.</B> Следующий 
оператор специфицирует <CODE>window2</CODE> как цель/target для гипертекстовой 
ссылки. Если пользователь щёлкает гиперссылку, фокус переводится на <CODE>window2</CODE>. 
Если <CODE>window2</CODE> не существует, оно создаётся.</p>
<PRE><A NAME="1004332"></a>&lt;A HREF="doc2.phpl" TARGET="window2"&gt; Load a file into window2&lt;/A&gt;</PRE>
<h5><a href="contents.php">Оглавление</a> | <a href="navobj.php">Назад</a>
| <a href="advtopic.php">Вперёд</a> | <a href="bklast.php">Индекс</a></h5>
<hr><P ALIGN=right><FONT SIZE=-2><I>Дата последнего обновления: 27 мая 1999 года.</I><br>
</BODY></HTML>
<?php
echo gb.'<a href="../../ycheb">Учебники</a>'.div;
echo 
gb.'<a href="'.H.'enter">Прихожая</a>'.div;
foot(); ?>
Онлайн: 2
Реклама