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).

Далее - пример ссылки, при щелчке на которой происходит обновление наших двух фреймов...

<script language="JavaScript"> <!-- function update_all() { parent.frames[0].location = "new_menu.htm"; parent.frames[1].location = "new_text.htm"; } // --> </script> <a href="javascript:update_all()">Click me!</a>

И вот теперь-то и происходит волшебное обновление двух фреймов. Причем, заметьте, можно было сделать так, чтобы наши два фрейма обновлялись из третьего. Еще можно было-бы передавать имена загружаемых файлов в функцию и пр. Но этот пример - только иллюстрация возможностей по работе с фреймами.

И еще: когда Вы индексируете свой сайт, использующий фреймы, не замечали одной проблемы? Человек, придя к Вам с поисковика, попадает не во фреймовую структуру, а просто на отдельную страницу. Почему? Поисковые машины индексируют страницы, и им неведома структура фреймов Вашего сайта. Для того, чтобы обойти эту проблему, можно воспользоваться следующие конструкцией для каждой страницы Вашего сайта (кроме главной, содержащей описание набора фреймов):

<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
 

Hosted by uCoz