Управление выводом в другом фрейме
Работа с фреймами
При работе с фреймами можно выполнять следующие действия:
· управлять элементами и атрибутами Web-страницы, выводимой в другом фрейме;
· управлять обработкой событий в другом фрейме;
· управлять фреймами, выводимыми в окне Web-браузера.
При работе с фреймами можно использовать коллекцию frames, которая содержит элементы frame в порядке их следования в Web-странице, однако более удобным является определение элемента frame с помощью метода getElementById().
Для обращения в родительский фрейм используется свойство parent объекта window, а свойство top того же объекта позволяет получить доступ к самому верхнему уровню иерархии фреймов.
Пусть структура фреймов документа в файле main.html описывается следующими элементами HTML:
<frameset id="fs" cols="40%,*">
<frame src="left.html" name="leftFrame" id="left" />
<frame src="right.html" name="rightFrame"
id="right" />
</frameset>
Обратиться к элементу frameset из дочерних фреймов можно с помощью следующего предложения JavaScript:
|
|
var fsObj = window.parent.document.getElementById("fs");
Доступ к элементам другого фрейма можно получить, указав после свойства parent имя фрейма (значение атрибута name). Так, для того, во фрейме left можно определить элемент фрейма right c id="p1" с помощью следующего предложения JavaScript:
var p1RightObj =
parent.rightFrame.document.getElementById("p1");
Организовав таким образом доступ к элементам другого фрейма, можно использовать все свойства и методы DOM для получения значений свойств элементов, а также для изменения структуры элементов документа и их свойств, т.е. управлять элементами и атрибутами фреймов Web-страницы.
Пример 4.5.70. Изменение во фрейме значений свойств элементов другого фрейма:
Просмотр примера: Example4-5-70.html
Текст документа HTML: Example4-5-70
Частным, но важным случаем управления элементами, является возможность управлять обработкой событий в другом фрейме с помощью определения функции – обработчика данного события. Например, если во фрейме left задать обработчик события щелчка мыши по абзацу c id="p1" в right:
p1RightObj["onclick"] =
new Function("alert('p1 in right clicked')");
то при щелчке мышью по абзацу во фрейме left в диалоговом окне alert будет выведено сообщение "p1 in right clicked".
Пример 4.5.71. Управление событиями в другом фрейме:
Просмотр примера: Example4-5-71.html
Текст документа HTML: Example4-5-71