В этом нам поможет JavaScript. По нажатию на нужную ссылку, будет вызываться функция загрузки документов в указанные фреймы. Адреса документов будут передаваться функции в качестве аргументов. Рассмотрим поподробнее. Создадим сначала файл TwoByOne.html, описывающий структуру фреймов:
<HTML> <HEAD> <TITLE>Изменение содержимого в двух фреймах по нажатию на одну ссылку</TITLE> </HEAD> <FRAMESET cols="30%,70%" frameborder="yes" framespacing="1"> <FRAME name="LeftFrame" src="LeftMenu.html"> <FRAMESET rows="50%,50%"> <FRAME name="TopFrame" src="about:blank"> <FRAME name="BotFrame" src="about:blank"> </FRAMESET> </FRAMESET> </HTML>
У двух правых фреймов в качестве источника при загрузке указаны пустые бланки: src="about:blank". Эти фреймы в нашем примере имеют имена "TopFrame" и "BotFrame". Эти имена будут использоваться для определения окна в которм следует открыть ннужный документ.
В левом фрейме будут располагаться ссылки, нажатием на которые мы будем загружать в наши два фрейма нужные документы. Назовем файл, который будет загружен в левый фрейм "LeftMenu.html". Рассмотрим его код. Вначале опишем нашу функцию загрузки документов:
<script language=JavaScript> function TwoByOne(frame1, frame2) { parent.TopFrame.location.href=frame1; parent.BotFrame.location.href=frame2; } </script>
В нашем примере функция будет называться TwoByOne(). frame1 и frame2 - параметры, через которые функции передаются адреса загружаемых документов. Объект parent является синонимом для окна или фрейма, содержащего текущий фрейм. "TopFrame" и "BotFrame" - это как я уже говорил имена наших фреймов, в которые следует загрузить документы. В JaveScript ссылка из одного фрейма на другой фрейм, находящийся на том же уровне иерархии осуществляется используя обращение parent.famename, где famename - имя фрейма, или parent.frames[index], где frames[index] - массив содержащий запись для каждого фрейма-потомка. Но пока предлагаю не загружать голову последним вариантом, а будем обращаться через имя фрейма famename. Загрузка самого документа осуществляется через объект location, указав в его свойстве href адрес загружаемого документа, который будет содержатьcя в переменных frame1 и frame1.
Сами ссылки, в которых вызывается наша функция будут выглядеть следующим образом:
<P> <a href="javascript:TwoByOne('MainText.html','Konfuciy.html')"> Проза</a> <P> <a href="javascript:TwoByOne('../Annenskij.html','../Guseva.html')"> Стихи</a>
Как это будет работать можно посмотреть на этом примере. Щелкните поочередно на каждую из ссылок в левом меню, и вы увидете как меняется содержимое обоих правых фреймов.
Теперь еще раз вернемся к работе JavaScript с изображениями.
Рассмотрим как JavaScript может автоматически
непрерывно сменять изображения с заданной частотой. Получается
некое подобие анимации.