htmlbook.ru - Для тех, кто делает сайты
Статьи Книги Шаг за шагом Рецепты Форум Графика для Web
Главная страница > Статьи > Фреймы > Ссылки внутри фреймов

Ссылки внутри фреймов

Влад Мержевич

Текстовая версия   Добавить комментарий

В обычном HTML-документе при переходе по ссылке, в окне браузера текущий документ заменяется новым. При использовании фреймов схема загрузки документов отличается от стандартной. Основное различие — возможность загружать документ в выбранный фрейм из другого. Для этой цели используется параметр target тега <А> (пример 1). В качестве значения задается имя фрейма, в который будет загружаться документ указанный параметром name (пример 2).

Пример 1. Ссылка на другой фрейм

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Ссылка на фрейм</title>
</head>
<body>
<p><a href="text.html" target="CONTENT">Содержание</a></p>
</body>
</html>

Пример 2. Имя фрейма

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Файл index.html</title>
</head>
<frameset cols="200,*">
<frame src="menu.html" name="MENU" noresize>
<frame src="content.html" name="CONTENT">
</frameset>
</html>

В примере 2 фрейму присваивается имя CONTENT. Чтобы документ загружался в указанный фрейм, используется параметр target="CONTENT".

Имя фрейма должно начинаться на цифру или латинскую букву. В качестве зарезервированных имен используются следующие:

_blank — загружает документ в новое окно;
_self — загружает документ в текущий фрейм;
_parent — загружает документ во фрейм, занимаемый родителем, если фрейма-родителя нет параметр действует также, как _top;
_top — отменяет все фреймы и загружает документ в полное окно браузера.

Чтобы одновременно обновить сразу два фрейма и загрузить в них разные документы, придется воспользоваться JavaScsript (пример 3).

Пример 3. Одновременная загрузка документов в два фрейма

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Ссылка на фрейм</title>
</head>
<body>
<p><a href="menu2.html" onClick="parent.frames.CONTENT.document.location=´content2.html´">Нажми на меня, нажми</a></p>
</body>
</html>

В данном примере сСсылка используется как обычная, но в качестве параметра добавляется событие onClick, отслеживающее нажатие на ссылку. Обратите внимание, что имя фрейма следует писать также, как оно указано в параметре name (в данном случае заглавными символами). JavaScript чувствителен к регистру и мнительно относится к любому неправильному написанию.

Статья опубликована: 12.09.2005 Последнее обновление: 16.04.2008

Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.

  1. Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
  2. Удаляются любые комментарии, которые:
    • включают множество ошибок;
    • написаны безграмотно;
    • не имеют отношения к данной статье;
    • не содержат никакой полезной информации для посетителей.
  3. Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
  4. Потренироваться в написании комментариев вы можете в песочнице.

Комментарии к статье

Юрий

13.12.2006

а что если оспользувать флеш меню? нельзя ли в файле index.html указаль все линки откривать в другом фрейме? кажетса я так когдато делал.. но как не помню sad

Vindex10

17.04.2007

Наверно вы использовали <base target=" Имя Фрейма ">, и помещали это в Боди. smile

Громозека

24.04.2007

Не понимаю, почему не работает следующая конструкция:

<a href="submenu.html" target="window1" onClick="parent.frames('window2').document.location='content.html'"><button style="background-image:url(files/bg2.JPG)"><i><b>ЯПОНИЯ</b></i></button>
</a>

Скриптовая часть ссылки не работает почему-то. Может, есть версии?..

Влад Мержевич

26.04.2007

frames - это массив, его значения надо брать в прямые скобки - frames['window'].

Громозека

03.05.2007

Кнопка должна открывать страницу в другом фрейме:
<a href="embassy.html" target="window1">
<button style="background-image:url(files/bg4.JPG)"><i><b>КНОПКА</b></i></button></a>

Пробовал различные варианты, с <input type=".." />, убирал фон кнопки, - в IE7 работать не хочет (работает только в виде обычной текстовой ссылки). В Firefox работает.
Это неизлечимо?

Влад Мержевич

04.05.2007

Это неизлечимо. Повесь на кнопку скрипт
<button onclick="...">
Вместо многоточия вставляешь код из примера 2.

Юра

19.05.2007

А как сделать, чтобы по ссылке из одного фрейма фрейм-страницы у меня открылся другая фрейм-страница, и в этой открытой фрейм-странице в определенном фрейме открылась нужная страница?

Например, у меня есть фрейм-страница man.htm (в ней два фрейма - menu и main).
Мне надо, чтобы по ссылке из фрейма menu, открылась фрейм-страница woman.htm (в ней два фрейма - menu1 и main1), и во фрейме main1 появилась нужная мне страница, а не та, которая прописана в <FRAME SRC="*.htm" name="main1" NORESIZE>??

Очень НУЖНО!!!!

Влад Мержевич

21.05.2007

С такими вопросами в форум!

Добавить комментарий

Имя
Комментарий

Сохранить имя (используется cookie)

Поиск по сайту

Фреймы
Разделы
Теги по теме

FRAME
Тег FRAME определяет свойства отдельного фрейма, на которые делится окно браузера.

FRAMESET
Определяет структуру фреймов на веб-странице. Фреймы разделяют окно браузера на отдельные области, расположенные вплотную друг к другу. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью тега FRAME.

Copyright 2002–2008 Влад Мержевич, по всем вопросам пишите по адресу: vlad@htmlbook.ru

О сайте | Планы на будущее | Использование сайта | Борьба с ошибками | Технологии | Поддержать проект