Web - кодинг: JavaScript:
Фреймы и JavaScript (Сборник рецептов)
Автор: Дмитрий Порохня
Источник: ,
В данной статье мы попытаемся немного обсудить фреймы и работу с ними.
Итак:
Многие начинающие web-мастера используют при оформлении своих сайтов
(страничек и пр.) фреймы. Лично я этого не одобряю (но это уже другая
история), но когда-то и сам пользовался ими.
И какие-же у меня возникали тогда проблемы?
Первая - это когда одним щелчком по ссылке нужно обновить сразу два
(три, да сколько угодно) фрейма. Вторая - это проблема при работе с
поисковыми машинами.
А теперь поподробней...
Допустим, у Вас есть два фрейма, один в левой части с меню, другой с
содержанием страницы. И вам понадобилось, чтобы при щелчке на ссылке под
названием, например, "Статьи", обновилось содержимое и фрейма меню, выведя
туда файл с более развернутым меню, и, естественно, содержимое фрейма с
содержанием (извините за каламбур).
В общем случае Ваша фреймовая конструкция может выглядеть следующим
образом:
<frameset cols="150, *"><frame src="menu.htm" scrolling=auto
name="menu"> <frame src="text.htm" scrolling=auto name="text"> </frameset>
То есть заметьте, что для того, чтобы решить поставленную задачу,
совсем необязательно задавать фреймам имена... Хотя имена все равно нужны
для установки цели ссылки (атрибут TARGET).
Далее - пример ссылки, при щелчке на которой происходит обновление
наших двух фреймов...
Click me!
И вот теперь-то и происходит волшебное обновление двух фреймов. Причем,
заметьте, можно было сделать так, чтобы наши два фрейма обновлялись из
третьего. Еще можно было-бы передавать имена загружаемых файлов в функцию
и пр. Но этот пример - только иллюстрация возможностей по работе с
фреймами.
И еще: когда Вы индексируете свой сайт, использующий фреймы, не
замечали одной проблемы? Человек, придя к Вам с поисковика, попадает не во
фреймовую структуру, а просто на отдельную страницу. Почему? Поисковые
машины индексируют страницы, и им неведома структура фреймов Вашего сайта.
Для того, чтобы обойти эту проблему, можно воспользоваться следующие
конструкцией для каждой страницы Вашего сайта (кроме главной, содержащей
описание набора фреймов):
<script language="JavaScript"> <!--
function check_frames() { if (parent.frames.length==0)
parent.location="index.htm"; } // --> </script>
body onLoad="check_frames()" - эта конструкция тела документа.
Конечно, и эту конструкцию можно усложнять и усовершенствовать, но это
уже дело Ваших рук.
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|