Поскольку фреймы представляют собой набор независимых окон, для того, чтобы ссылка открывалась в нужном месте, следует указывать имена фреймов.
Предположим, у нас есть документ, состоящий из двух фреймов, названных MENU и CONTENT, как изображено на рис. 1.
Рис. 1. Вид документа с фреймами
Обычно в левом фрейме находится список ссылок на разделы сайта, а в правом фрейме отображается содержимое документов. Чтобы веб-страница открывалась в определенном фреймовом окне, следует использовать следующий код (пример 1).
Пример 1. Открытие документа во фрейме
<!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=utf-8"> <title>Фреймы</title> </head> <body> <p><a href="http://htmlbook.ru" target="CONTENT">Ссылка открывает сайт www.htmlbook.ru во фрейме с именем CONTENT</a></p> </body> </html>
Если атрибут ссылки target=»CONTENT» будет опущен, документ откроется в текущем фрейме, где находится сама ссылка.
Чтобы одновременно обновить сразу два фрейма и загрузить в них разные документы, придется воспользоваться JavaScript (пример 2, 3).
Пример 2. Файл index.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=utf-8"> <title>Фреймы</title> </head> <frameset cols="200,*"> <frame src="menu3.html" name="MENU" noresize> <frame src="content.html" name="CONTENT"> </frameset> </html>
Пример 3. Файл menu3.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=utf-8"> <title>Меню</title> </head> <body> <p><a href="menu2.html" onclick="parent.frames[´CONTENT´].document.location=´text.html´"> Нажми на меня, нажми</a></p> </body> </html>
Ссылка используется как обычная, но в качестве атрибута добавляется событие onclick, отслеживающее нажатие на ссылку. Обратите внимание, что имя фрейма следует писать также, как оно указано в атрибуте name (в данном случае заглавными символами). JavaScript чувствителен к регистру и мнительно относится к любому неправильному написанию.
Сайт