Загрузка в два фрейма одновременно

Если вы используете на вашей web-странице два элемента iframe, то, возможно, вам понадобится загрузить в каждый из них новые документы одновременно, одним щелчком по ссылке.
Для этого вам не обойтись без небольшого сценария, написанного на языке JavaScript.

Перед изучением этого урока я советую вам просмотреть первые уроки, посвященные элементу iframe:

Тэг IFRAME
Ссылки на фреймы

Как всегда, для наглядности, я предлагаю вам несколько простых страничек, которые рекомендую скопировать в любой HTML-редактор.

Главная страница:
<html>
<head>
<style type="text/css">
body {background: #C7C5C5; color: #000000;
font-size: 50px; font-weight: bold; text-align: center;}
td {font-size: 40px; text-align: center;}
a:link {color: #0000FF; font-size: 40px;}
a:visited {color: #0000FF; font-size: 40px;}
a:active {color: #FF0000; font-size: 40px;}
a:hover {color: #8000FF; font-size: 40px;}

</style>
</head>
<body>
Главная страница
<table border="0" cellspacing="0" cellpadding="10">
<tr>
<td>
<a href="javascript:loadTwo('1.html','2.html')">Ссылка</a>
</td>

<td>
iframe1
<br>
<iframe width="250px" height="400px" name="iframe1"
src="#" frameborder="1" scrolling="no"
marginwidth="10px" marginheight="10px">
Ваш браузер не поддерживает элемент IFRAME
</iframe>

</td>
<td>
iframe2
<br>
<iframe width="250px" height="400px" name="iframe2"
src="#" frameborder="1" scrolling="no"
marginwidth="10px" marginheight="10px">
Ваш браузер не поддерживает элемент IFRAME
</iframe>
</td>
</tr>
</table>

<script language="javascript">
function loadTwo(iframe1URL, iframe2URL) {
parent.iframe1.location.href=iframe1URL
parent.iframe2.location.href=iframe2URL
}
</script>

</body>
</html>

Давайте детально разберем HTML-код Главной страницы.

С помощью каскадных таблиц стилей (CSS) задаем цвет фона, размеры и цвет шрифтов, выравнивание текста и параметры для ссылок:

<style type="text/css">
body {background: #C7C5C5; color: #000000;
font-size: 50px; font-weight: bold; text-align: center;}
td {font-size: 40px; text-align: center;}
a:link {color: #0000FF; font-size: 40px;}
a:visited {color: #0000FF; font-size: 40px;}
a:active {color: #FF0000; font-size: 40px;}
a:hover {color: #8000FF; font-size: 40px;}
</style>

Создаем таблицу из одной строки с тремя ячейками:

<table border="0" cellspacing="0" cellpadding="10">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>

В первой ячейке размещаем ссылку (чуть позже мы рассмотрим ее подробнее):

<td>
<a href="javascript:loadTwo('1.html','2.html')">Ссылка</a>
</td>

Во второй - ифрейм с именем "iframe1". Обратите внимание, что для атрибута src я указал значение "#", поэтому в ифрейме отображается пустая страница. Если вы вместо "#" укажете "URL" какого-то документа, то именно этот документ и загрузится в ифрейм при открытии Главной страницы:

<td>
<iframe width="250px" height="400px" name="iframe1"
src="#" frameborder="1" scrolling="no"
marginwidth="10px" marginheight="10px">
Ваш браузер не поддерживает элемент IFRAME
</iframe>
</td>

В третьей ячейке разместился ифрейм с именем "iframe2" (аналогичный первому).

Так же, между тегами <body></body> помещаем небольшой сценарий. Я не буду его детально рассматривать, отмечу только, что функция loadTwo как раз и служит для того, чтобы загружать в ифреймы нужные документы. Вам ничего не надо менять в данном сценарии, кроме выделенных красным цветом имен ифреймов (вы можете дать им свои имена):

<script language="javascript">
function loadTwo(iframe1URL, iframe2URL) {
parent.iframe1.location.href=iframe1URL
parent.iframe2.location.href=iframe2URL
}
</script>


Теперь вернемся к нашей ссылке:

<a href="javascript:loadTwo('1.html','2.html')">Ссылка</a>

Данная ссылка вызывает функцию loadTwo, которая загружает документ 1.html в ифрейм с именем iframe1 и документ 2.html в ифрейм с именем iframe2. Вместо 1.html и 2.html вы можете указать URL любых других документов.

Создадим странички 1.html и 2.html:

1.html:
<html>
<head>
<style type="text/css">
body {background: #FFFFFF; color: #000000; font-size: 40px;}
</style>
</head>
<body>
Загрузился документ 1.html
</body>
</html>

2.html:
<html>
<head>
<style type="text/css">
body {background: #FFFFFF; color: #000000; font-size: 40px;}
</style>
</head>
<body>
Загрузился документ 2.html
</body>
</html>

Несколько важных моментов:

Вышеупомянутый сценарий JavaScript будет работать для любого количества ссылок.

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

Если вам нужно загрузить новый документ только в один из ифреймов - воспользуйтесь атрибутом target с указанием имени нужного ифрейма.

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

Не надо быть "гигантом мысли", чтобы немного переделать наш сценарий JavaScript для одновременной загрузки документов в три и большее количество ифреймов. Попробуйте!

НА ВЕРХ.

 

© 2004-2005 All rights reserved                                                                                  WebSupport: Бикмуллин Эльдар

 Яндекс цитирования Rambler's Top100 Рейтинг@Mail.ru Kat.RU -- webmasters make $$$

 ...zhekinside.narod.ru...Жекин сайт...Скрипты...CSS...Софт...Обои...Игры... Схемы, статьи, программы Всё о Counter-Strike и дла Counter-Strike!

Hosted by uCoz