Пример загрузки фреймов (фрейм не загружается отдельно от остальных фреймов)
Задача состоит в следующем:
Страница на сайте состоит из нескольких фреймов (fr1.html, fr2.html, fr3.html).
В том случае, если посетитель открывает один из фреймов напрямую (допустим, получив ссылку из поискового каталога), JavaScript проверяет, что фрейм открыт отдельно от остальных фреймов и производит перезагрузку таким образом, чтобы страница показывалась с учетом всех фреймов (открывается файл index.html) .
Решаем её следующим образом:
Создаём следующий index.html файл:
<html;> <frameset; rows="33%,33%,34%"> <frame; src="fr1.html" name="fr1"> <frame; src="fr2.html" name="fr2"> <frame; src="fr3.html" name="fr3"> </frameset> </html>
Как видим фреймы имеют имена fr1, fr2, fr3.
При открытии файла fr1.html нам необходимо произвести проверку открыт этот файл во фрейме или нет. Так как мы знаем, что имя фрейма, куда должен загружаться файл - fr1, то проверку делаем следующим образом:
if(this.name!="fr1")document.location="index.html"
Т.е. если документ открывается не во фрейме this.name возвращает пустое значение и открывается файл index.html.
Вот пример файла fr1.html
<html;> <head;> <script; language="JavaScript"> <!-- if(this.name!="fr1")document.location="index.html" //--> </script> </head> <body;> <h1;>Это первый фрейм</h1> </body> </html>
Соответственно файл fr2.html выглядит следующим образом:
<html;> <head;> <script; language="JavaScript"> <!-- if(this.name!="fr2")document.location="index.html" //--> </script> </head> <body;> <h1;>Это второй фрейм</h1> </body> </html>
Файл fr3.html выглядит следующим образом:
<html;> <head;> <script; language="JavaScript"> <!-- if(this.name!="fr3")document.location="index.html" //--> </script> </head> <body;> <h1;>Это третий фрейм</h1> </body> </html>