Главная » Мастерская » Статьи » Web-сайт своими руками » Шаг 17
Шаг 1 - Шаг первый - создание простейшего документа HTML
Шаг 2 - Рассмотрим теги нашего документа
Шаг 3 - Рассмотрим создание таблиц в документах HTML
Шаг 4 - Вставка графических изображений в документах HTML
Шаг 5 - Создание карт-изображений
Шаг 6 - Форматирование текста HTML
Шаг 7 - Создадим простейшую страничку HTML
Шаг 8 - Как разместить свою HTML страницу в интернете
Шаг 9 - Как разместить на HTML-странице счетчик посещений
Шаг 10 - Создание фрэймов в документах HTML
Шаг 11 - Бегущая строка в HTML документе
Шаг 12 - Где взять и как сделать гостевую книгу
Шаг 13 - Создание форм
Шаг 14 -Изменение дизайна Гостевой книги
Шаг 15 - Немного о JavaScript
Шаг 16 - Примеры фотоальбомов с использованием JavaScript
Шаг 17 - Еще раз о фреймах
Шаг 18 - Изменение информации в двух разных фреймах, нажатием на одну ссылку
Шаг 19 - Анимация и JavaScript
Шаг 20 - Изменение картинки при наведении курсора мыши
Шаг 21 - Как адаптировать сайт под различные видеорежимы

Шаг 17 - Еще раз о фреймах

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

Итак рассмотрим пример страницы, содержащей фреймы. Пусть у нас есть документ c именем "MyFrame.html", в котором имеется два вертикальных фрейма. В левом фрейме будет располагаться навигационное меню, а в правый будет загружаться информация.

<FRAMESET cols="30%,70%" frameborder="yes"  framespacing="1">
  <FRAME name="MenuFrame" src="TextMenu.html"> 
  <FRAME name="MainFrame" src="MainText.html">
</FRAMESET> 

Проблема с левым фреймом решается очень просто. Сначала необходимо выполнить проверку, загружена ли страница во фрейм или открыта отдельно. Проверка условия в JavaScript осуществляется с помощью оператора If. Используем свойство length, объекта frame, отражающего количество фрэймов-потомков внутри фрейма. Если его величина равна 0, значит страница загружена не во фрейм, и необходимо загрузить управляющую страницу "MyFrame.html". Загрузка необходимой страницы в JavaScript выполняется с помощью объекта location. Выглядеть это будет так:

<script language="JavaScript">
<!--
if(self.parent.frames.length==0) 
  {
  self.parent.location="MyFrame.html";
  }
//-->
</script>

Таким образом, если пользователь найдет через поисковую систему по ключевым словам нашу страницу "TextMenu.html" и попытается ее открыть, то произойдет загрузка в окно броузера управляющей страницы "MyFrame.html".

Для правого фрэйма, тоже необходимо выполнить проверку, и если данная страница загружена не во фрейме, то можно, например, отобразить ссылку, предлагающую перейти на стартовую страницу:

<script language="JavaScript">
<!--
if(self.parent.frames.length==0) 
{
document.writeln("<A href='MyFrame.html' target='_top'>");
document.writeln("Перейти на стартовую страницу раздела</A>"); 
}
//-->
</script>

Чтобы было понятнее напишем конкретные примеры.

Наша управляющая страница "MyFrame.html" будет иметь следующий код:

<HTML>
<HEAD>
  <TITLE>Страница с двумя вертикальными фреймами</TITLE>
</HEAD>
<FRAMESET cols="30%,70%" frameborder="yes"  framespacing="1">
  <FRAME name="MenuFrame" src="TextMenu.html"> 
  <FRAME name="MainFrame" src="MainText.html">
</FRAMESET> 
</HTML>

Страница, отображаемая в левом фрейме и содержащее навигационное меню, будет иметь следующий код:

<HTML>
<HEAD>
<BASE TARGET=MainFrame>
   <TITLE></TITLE>
</HEAD>

<script language="JavaScript">
<!--
if(self.parent.frames.length==0) 
  {
  self.parent.location="MyFrame.html";
  }
//-->
</script>

<BODY>
<CENTER><H3>Первый Frame</H3></CENTER>
<P>
<A href="MainText.html">
Пауло КОЭЛЬО - Рождественская сказка</A>
<P>
<A href="Konfuciy.html">
Тищенко Валерий - Конфуций</A>
<P>
<a href="../TextMenu.html" target='_parent'>
На стартовую страницу</a>
</BODY>
</HTML>


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

Файл "MainText.html" содержащий текст для отображения в правом фрейме будет иметь следующий код:

<HTML> 
<HEAD>
<TITLE>Пауло КОЭЛЬО - Рождественская сказка</TITLE> 
</head> 
<body>

<TABLE width=100% border=0>
<TR>
<TD>
<h3>Пауло КОЭЛЬО</h3> 
</TD> 
<TD align="right">
<script language="JavaScript">
<!--
if(self.parent.frames.length==0) 
{
document.writeln("<A href='MyFrame.html' target='_top'>");
do

Copyright ByWeb©
Hosted by uCoz