Взаимодействие между фреймами

Взаимодействие между фреймами заключается в возможности загрузки документов в выбранный фрейм по командам из другого фрейма. Для этой цели используется параметр TARGET тэга <А>. Данный параметр определяет имя фрейма или окна браузера, в которое будет загружаться документ, на который указывает данная ссылка. По умолчанию при отсутствии параметра TARGET документ загружается в текущий фрейм (или окно). Это умолчание может быть изменено заданием тэга <BASE> с нужным значением параметра TARGET. Задание имени фрейма, в который осуществляется загрузка по умолчанию, очень удобно для тех случаев, когда большое количество ссылок должно направлять документы в определенный фрейм.

Имена фреймов должны начинаться с латинской буквы или цифры. В качестве имени может задаваться имя существующего окна или фрейма, а может указываться новое имя, под которым будет открыто новое окно. Имеется четыре зарезервированных имени, при задании которых выполняются специальные действия. Эти имена начинаются с символа подчеркивания (_): "_blank", "_self", "_parent" и "_top" (Описание данных параметов рассмотрено выше). Любое другое имя, начинающееся с символа "подчеркивание", недопустимо.

Приведем примеры взаимодействия между фреймами и отдельными окнами браузера. Рассмотрим следующий HTML-код:

<HTML>

<HEAD>

<TITLE>Использование фреймов</TITLE>

</HEAD>

<FRAMESET COLS=2*,*,*>

<FRAME SRC=frame_a.htm NAME="A">

<FRAME SRC=empty.htm NAME="B">

<FRAME SRC=empty.htm NAME="C">

</FRAMESET>

</HTML>

 

В этом HTML-документе дается описание структуры, состоящей из трех фреймов с именами "А", "B" и "C". Имена фреймов потребуются в дальнейшем для организации ссылок между фреймами. Заметим, что на фрейм с именем "А" в данном примере ссылок не будет, поэтому он мог быть оставлен без имени вообще. При загрузке приведенного выше документа в браузер во фреймах будет отображена информация, содержащаяся в файлах, определяемых параметром SRC. Во фрейм "А" попадет содержимое файла frame_a.htm, а остальные два фрейма получат данные из файла empty.htm, который не имеет отображаемых данных. Еще раз напомним, что HTML-документ, описывающий структуру фреймов, не имеет раздела <BODY>.

 

Приведем текст файла с именем frame_a.htm:

 

<HTML>

<HEAD>

<TITLE>Документ для фрейма A</TITLE>

</HEAD>

<BODY>

<A HREF="test.htm" TARGET="B">1.Загрузка документа во фрейм В </А><P>

<A HREF="test.htm" TARGET="C">2.Загрузка документа во фрейм С </А><P>

<A HREF="test.htm" TARGET="D">3.Загрузка документа в окно с именем D </A><P>

<A HREF="test.htm" TARGET="_blank">4.Загрузка документа в новое окно </А><P>

<A HREF="test.htm" TARGET="_top">5.Загрузка документа в полное окно </А><P>

<A HREF="test.htm" TARGET="_self">6.Загрузка документа в текущий фрейм </А>

</BODY>

</HTML>

Этот документ является полным HTML-документом, имеющий разделы <HEAD> и <BODY> и, в свою очередь, имеет ссылки на файл с именем test.htm, располагающийся в том же самом каталоге, что и файл frame_a.htm.

Текст файла test.htm крайне прост:

<HTML>

<HEAD>

<TITLE>Тестовый документ</TITLE>

</HEAD>

<BODY>

Текст тестового документа

</BODY>

</HTML>

 

Файл frame_a.htm, содержимое которого загрузилось во фрейм "А", имеет шесть ссылок на один и тот же файл test.htm с различным значением параметра TARGET.

Рассмотрим действия, которые будут происходить при реализации этих ссылок. Первая ссылка со значением TARGET="B" будет загружать файл test.htm во фрейм с именем "В". Вторая ссылка выполнит те же действия для фрейма "C". Изначально во фреймах "B" и "C" ничего нет (точнее загружено содержимое пустого файла empty.htm). Реализация первой и второй ссылок заполнит эти фреймы.

Третья ссылка со значением TARGET=”D" приведет к образованию нового окна браузера с именем "D" и загрузке в него файла test.htm. Заметим, что форма записи этой ссылки ничем не отличается от первых двух. Различие состоит в том, что в первых двух случаях ссылки были даны на существующие фреймы, имена которых были определены в файле со структурой фреймов, а в данном случае ссылка дана на несуществующий объект. Если данная ссылка будет выполнена хотя бы один раз, то окно с именем "D" будет образовано и повторный переход по ссылке лишь перезагрузит данные в существующее теперь окно "D". Конечно, пользователь может в любой момент его закрыть и вновь образовать выбором данной ссылки.

Четвертая ссылка со значением TARGET="_blank" создаст новое окно без имени и загрузит туда требуемый документ. Любое повторение данной ссылки будет открывать еще одно окно браузера.

Пятая ссылка со значением TARGET="_top" загрузит документ в полное окно вместо всей фреймовой структуры. При таком значении параметра TARGET новое окно не образуется. Возврат к фреймовой структуре возможен нажатием кнопки Back.

Последняя ссылка со значением TARGET="_self" загрузит документ во фрейм "А" на место документа со ссылками. В данном случае результат эквивалентен выполнению ссылки без параметра TARGET.

Вот несколько примеров создания фреймов:

 

*

 

<FRAMESET cols="*,140"> <FRAME SRC="homepage.htm" NAME="frame1"> <FRAME SRC="menu.htm" NAME="frame2"> </FRAMESET>
*

 

<FRAMESET cols="100,*"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAME SRC="menu.htm" NAME="Frame2"> </FRAMESET>
*

 

<FRAMESET rows="100,*"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAME SRC="menu.htm" NAME="Frame2"> </FRAMESET>
*

 

<FRAMESET rows="*,60"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAME SRC="menu.htm" NAME="Frame2"> </FRAMESET>
*
45% 55%

 

 

<FRAMESET rows="*,60"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAMESET cols="45%,55%"> <FRAME SRC="menu.htm" NAME="Frame2"> <FRAME SRC="menu2.htm" NAME="Frame3"> </FRAMESET> </FRAMESET>
*
15%
15%
70%

 

 

<FRAMESET cols="*,55%"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAMESET rows="15%,15%,70%"> <FRAME SRC="menu.htm" NAME="Frame2"> <FRAME SRC="menu2.htm" NAME="Frame3"> <FRAME SRC="menu3.htm" NAME="Frame4"> </FRAMESET> </FRAMESET>
50% 50%
50% 50%

 

<FRAMESET cols="50%,50%"> <FRAMESET rows="50%,50%"> <FRAME SRC="homepage.htm" NAME="Frame1"> <FRAME SRC="homepage2.htm" NAME="Frame2"> </FRAMESET> <FRAMESET rows="50%,50%"> <FRAME SRC="menu.htm" NAME="Frame3"> <FRAME SRC="menu2.htm" NAME="Frame4"> </FRAMESET> </FRAMESET>
     

Самостоятельно:

Вариант №1. Создать сайт (WD.Html в папке «Лабораторная на тему Фреймы») с вложенными фреймами, согласно рис.1. Разработать структуру вложенных фреймов: заголовок и три фрейма рабочей области. При выборе ссылок в первом фрейме рабочей области во втором фрейме должна отобразится информация согласно рис.2. При чем при выборе ссылки переход должен осуществляться к соответствующему тексту ссылки (используйте локальные гиперссылки).

Вариант №2. Создать сайт (Kino.Html в папке «Лабораторная на тему Фреймы») с вложенными фреймами, согласно рис.1. Разработать структуру вложенных фреймов: заголовок и три фрейма рабочей области. При выборе ссылки Актеры в левом фрейме в нижнем фрейме должна отобразится информация согласно рис.2. При выборе ссылки Фантастика в нижнем фрейме должна отобразится информация согласно рис.3. Все изображения должны точно соответствовать заданию.

Вариант №3. Создать сайт (WEB.Html в папке «Лабораторная на тему Фреймы») с вложенными фреймами, согласно рис.1. Разработать структуру вложенных фреймов: заголовок и три фрейма рабочей области (без границ и третий правый фрейм невидимый). При выборе ссылки Виртуальная Третьяковская галерея во втором фрейме должна отобразится информация согласно рис.2., а в третьем информация о дизайнерах, рис.2. При выборе ссылки IBS Group во втором фрейме должна отобразится информация согласно рис.3., а в третьем информация о дизайнерах, рис.3. Все изображения должны точно соответствовать заданию.