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

Ссылки во фреймах

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

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

Поскольку фреймы представляют собой набор независимых окон, для того, чтобы ссылка открывалась в нужном месте, следует указывать имена фреймов.

Предположим, у нас есть документ, состоящий из двух фреймов, названных MENU и CONTENT, как изображено на рис. 1.

Рис. 1

Рис. 1. Вид документа с фреймами

Обычно в левом фрейме находится список ссылок на разделы сайта, а в правом фрейме отображается содержимое документов. Чтобы веб-страница открывалась в определенном фреймовом окне, следует использовать следующий код (пример 1).

Пример 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="http://www.htmlbook.ru" target="CONTENT">Ссылка открывает сайт www.htmlbook.ru во фрейме с именем CONTENT</a></p>

</body>
</html>

Если параметр ссылки target="CONTENT" будет опущен, документ откроется в текущем фрейме, где находится сама ссылка.

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

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

Файл index.html

Валидный 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>



Файл menu.html

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

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

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

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

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

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

Ольга

25.12.2006

Я видимо особо одар?нная smile) ничего не поняла. Хотя раньше делала и получалось, а забыла вс?. К меню нужно список создать, ведь так? Вобщем чтобы голову не морочать, я хочу сделать ссылки на другие по теме моей ресурсы, хочу чтоб с боку были. Как сделать это?

Dark_Messian

03.02.2007

Когда я попробовал вставить это вс?, у меня не получилось

incubus

19.02.2007

Подскажите, как сделать тоже самое без использования фреймов, чтобы при нажатии на ссылку в выпадающем меню, находящееся в левой колонке, документ открывался в правой колонке и чтобы при этом содержимое левой колонки не изменялось? Спасибо.

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

01.03.2007

Учи AJAX, он тебе поможет.

Славик

23.03.2007

Млин народ , извините за беспокойство , но я немогу понять , куда вставить,что-б ссылки были и на одной Фрейм с именем MENU и на другой Фрейм с именем CONTENT .. sad у меня стоит так...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<frameset cols="200,*">
<frame src="menu.html" name="MENU">
<frame src="content.html" name="CONTENT">
</frameset>
<head>
<title> Funtila <title>
</head>

</body>
</html>


а куда вставлять немогу понять sad .. Зделайте пример пожалуйста , зарание спосибо !

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

23.03.2007

Славик, у тебя куча ошибок с кодом. Вообще, должно быть три файла: index.html, content.html и menu.html. С ними и работай.

Игорь

14.02.2008

Статья полезная, хотелось бы только немного добавить что для Mozilla'ы код с описанным сдесь не прокатит надо заместо
<a href="menu2.html" onClick="parent.frames[?CONTENT?].document.location=?content2.html?">Нажми на меня, нажми</a>
написать
<a href="" onClick="parent.frames[?CONTENT?].document.location=?content2.html?">Нажми на меня, нажми</a>
Иначе он откроет втом же фрейме что и ссылка.

Марина

05.08.2008

У меня 3 фрейма: верхний с горизонтальным меню, и ниже два. Некоторые пункты меню имеют ниспадающее меню, но оно ниспадает в тот же фрейм и перекрывается нижележащим фреймом, что можно сделать, подскажите, пожалуйста.

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

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

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

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

Ссылки
Разделы
Теги по теме

A
Тег A является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия параметров name или href тег A устанавливает ссылку или якорь.

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

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

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

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