Вход Регистрация
Файл: work/js_teach/windows.php
Строк: 304
<?
require '../../config.php';
$title 'Учебник JS';
include 
'../../style/head.php';
aut();
who_add(0'servise');
?>
<!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>
<?
include '../../style/foot.php';
?>
Онлайн: 3
Реклама