русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Передача фокуса во фрейм


Дата добавления: 2013-12-23; просмотров: 990; Нарушение авторских прав


Именование фреймов

Обратиться к фрейму можно либо по имени, либо как к элементу массива frames[]. Рассмотрим HTML-документ:

<HTML><HEAD>...</HEAD><FRAMESET COLS="20%,*"><FRAME NAME=left SRC=frame1.htm><FRAME NAME=right SRC=frame2.htm></FRAMESET></HTML>

Предположим, что на странице, загруженной в правый фрейм, есть две картинки. Для изменения свойства src второй из них можно использовать следующие записи:

top.frames[1].images[1].src="pic.gif";

или

top.right.images[1].src="pic.gif";

В связи с индексированием фреймов возникает вопрос о том, как они нумеруются в одномерном встроенном массиве фреймов объекта Window. Проиллюстрируем это на примере: (открыть)

<FRAMESET ROWS="50,*,50"><FRAME NAME=top SRC=top.html><FRAMESET COLS="100,*,100"><FRAME NAME=left SRC=left.html><FRAME NAME=center SRC=center.html><FRAME NAME=right SRC=right.html></FRAMESET><FRAME NAME=bottom SRC=bottom.html></FRAMESET>


Рис. 14.5. Центральный фрейм, разбитый на три вертикальных

Построим теперь нечто перпендикулярное предыдущему примеру – столбец из трех фреймов: (открыть)

<FRAMESET COLS="100,*,100"><FRAME NAME=left SRC=top.html><FRAMESET ROWS="60,*,60"><FRAME NAME=top SRC=left.html><FRAME NAME=center SRC=center.html><FRAME NAME=bottom SRC=right.html></FRAMESET><FRAME NAME=right SRC=bottom.html></FRAMESET>


Рис. 14.6. Центральный фрейм, разбитый на три горизонтальных

Таким образом, при нумеровании фреймов в одномерном массиве фреймов на странице система придерживается правила "слева направо, сверху вниз". Вкладывая наши примеры друг в друга, можно получить правильную индексацию страниц при любой сложной фреймовой структуре.



Обычной задачей при разработке типового 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;}

Листинг 14.8.

Функция 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;}

Листинг 14.9.

Обратите внимание на то, что данная функция возвращает значение false. Это происходит потому, что надо маскировать событие submit. Ведь документ уже перезагружен и снова его загружать не надо.



<== предыдущая лекция | следующая лекция ==>
Иерархия фреймов | Аналоговые вычислительные машины.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.