Основы Web-инжиниринга. Часть 1. Громов Ю.Ю - 42 стр.

UptoLike

</HEAD>
<BODY>
<А href="test.htm" target="B">1. Загрузка документа во фрейм В</А>
<А href ="test .htm" target ="C">2. Загрузка документа во фрейм С</А>
<А href="test.htm" target="D">3. Загрузка документа в окно с именем D</A>
<А href="test.htm" target="_blank">4. Загрузка документа в новое окно </А>
<А href="test.htm" target="_top">5. Загрузка документа в полное окно</А>
<А href="test.htm" target="_self">6. Загрузка документа в текущий фрейм </А>
</BODY>
</HTML>
Этот документ является полным HTML-документом, имеющим разделы <HEAD> и <BODY> и, в свою очередь, ссылки
на файл с именем test.htm, располагающийся в том же самом каталоге, что и файл frame_a.htm.
Файл frame_a.htm, содержимое которого загрузилось во фрейм "А", имеет шесть ссылок на один и тот же файл test.htm с
различным значением атрибута target.
Рассмотрим действия, которые будут происходить при реализации этих ссылок. Первая ссылка со значением target="B"
будет загружать файл test.htm во фрейм с именем "B".
Вторая ссылка выполнит те же действия для фрейма "C".
Третья ссылка со значением target="D"
приведет к образованию нового окна браузера с именем "D" и загрузке в него
файла test.htm. Заметим, что форма записи этой ссылки ничем не отличается от первых двух. Различие состоит в том, что в
первых двух случаях ссылки были даны на существующие фреймы, имена которых были определены в файле со структурой
фреймов, а в данном случае ссылка дана на несуществующий объект. Если данная ссылка будет выполнена хотя бы один раз,
то окно с именем "D" будет образовано и повторный переход по ссылке лишь перезагрузит данные в существующее теперь
окно "D". Конечно, пользователь может в любой момент его закрыть и вновь образовать выбором данной ссылки.
Четвертая ссылка со значением target="_blank" создаст новое окно без имени и загрузит туда требуемый документ. Лю-
бое повторение данной ссылки будет открывать еще одно окно браузера.
Пятая ссылка со значением target="_top" загрузит документ в полное окно вместо всей фреймовой структуры. При та-
ком значении атрибута target новое окно не образуется. Возврат к фреймовой структуре возможен нажатием кнопки Back.
Последняя ссылка со значением target="_seif" загрузит документ во фрейм "А" на место документа со ссылками. В дан-
ном случае результат эквивалентен выполнению ссылки без атрибута target.
Имена фреймов или окон браузера не следует путать с названиями загружаемых документов. Имена фреймов при про-
смотре нигде не видны, они требуются только для организации взаимодействия и поэтому скрыты от пользователя. Увидеть
их можно только при просмотре исходного текста HTML-файлов.
Одним из наиболее часто встречающихся вариантов применения фреймов, который уже упоминался в данной главе, яв-
ляется случай двух фреймов, один из которых содержит список ссылок, а в другой загружаются сами документы.
Попробуем расширить постановку задачи. Пусть необходимо отображать на экране содержимое достаточно большого
документа, состоящего из глав, разделенных на разделы. Типичным примером служит техническая литература по какой-либо
тематике. Опишем желаемое представление такого документа на экране. Разобьем экран на три фрейма, в одном из которых
будет располагаться список глав книги, во второмперечень разделов выбранной главы, а в третьемтекст выбранного
раздела. При выборе ссылки во втором фрейме должно меняться содержимое третьего фрейма. Реализация этого требования
тривиальна. При выборе ссылки в первом фрейме должно одновременно изменяться содержимое как второго, так и третьего
фрейма. На первый взгляд реализация этой задачи на языке HTML невозможна (без применения программирования на языке
JavaScript или др.), так как при выполнении ссылки загружается только один документ, а не два или более. Тем не менее,
решение данной задачи вполне возможно.
Покажем возможную схему решения такой задачи на простом примере. Пусть требуется отобразить на экране три фрейма
и загрузить в них некоторые документы. Поставим задачу создать в каждом из этих фреймов ссылки, реализация которых, на-
пример, меняет местами содержимое двух фреймов. Пусть первый фрейм занимает 50 % ширины окна и 100 % высоты и рас-
полагается с левой стороны окна. Правая половина окна делится по горизонтали также пополам и содержит два других фрейма.
Такая структура описывается следующим кодом:
<HTML>
<HEAD>
<TITLE>Пример взаимодействия между фреймами</TITLE>
</HEAD>
<FRAMESET cols="*,*">
<FRAME src="left.htm">
<FRAMESET rows="*,*">
<FRAME src="l.htm">
<FRAME src="2.htm">
</FRAMESET> </FRAMESET>
С помощью данного HTML-кода будет создана требуемая структура, однако решение поставленной задачи невозможно.
Необходимо вынести вложенную структуру <FRAMESET> в отдельный файл, а в данном HTML-коде описать фрейм, ссы-
лающийся на созданный файл. Тогда текст исходного документа будет иметь вид:
<HTML>
<HEAD>
<TITLE>Пример взаимодействия между фреймами</TITLE>