Основы Web-инжиниринга. Часть 1. Громов Ю.Ю - 87 стр.

UptoLike

Рис. 69
Таким образом, при нумеровании фреймов в одномерном массиве фреймов на странице система придерживается правила
"слева направо, сверху вниз". Вкладывая наши примеры друг в друга, можно получить правильную индексацию страниц при
любой сложной фреймовой структуре.
Передача фокуса во фрейм. Обычной задачей при разработке типового Web-узла является загрузка результатов испол-
нения CGI-скрипта во фрейм, отличный от фрейма, в котором вводятся данные для этого скрипта. Если путь загрузки ре-
зультатов фиксированный, то можно просто использовать атрибут target формы. Сложнее, если результат работы должен
быть загружен в разные фреймы, в зависимости от выбранной кнопки, например.
Эту задачу можно решать по-разному: открывать ранее открытое окно или переназначать свойство target. Последнее
решение, конечно, более изящное, с него и начнем:
function load()
{
if(self.document.f.s.options[document.f.s.selectedIndex].text=="top")
{
document.f.target = "mytop";
self.top.frames[2].document.open();
self.top.frames[2].document.close();
}
else
{
document.f.target = "mybottom";
self.top.frames[1].document.open();
self.top.frames[1].document.close();
}
return true;
}
Функция load() вызывается как обработчик события submit, она является логической функцией. Возврат значения
true позволяет реализовать перезагрузку документа.
Теперь рассмотрим второй вариант. Его идея состоит в том, что при попытке открыть окно с именем существующего
окна новое окно не открывается, а используется уже открытое. Фреймэто тоже окно, поэтому на него данное правило рас-
пространяется, но вот функция, которая реализует этот вариант, отличается от предыдущей:
function load()
{
if(self.document.f.s.options[document.f.s.selectedIndex].text=="top")
{
window.open("./framer.htm","mytop");
self.top.frames[2].document.open();
self.top.frames[2].document.close();
}
else
{
window.open("./framer.htm","mybottom");
self.top.frames[1].document.open();
self.top.frames[1].document.close();
}
return false;
}
4.6. ПРОГРАММИРОВАНИЕ ФОРМ
Если рассматривать программирование на JavaScript в исторической перспективе, то первыми объектами, для которых бы-
ли разработаны методы и свойства, стали поля форм. Обычно тег FORM и поля форм именованы:
<FORM NAME=f_name METHOD=post