Лекция: Иерархия и именование фреймов
Рассмотрим сначала простой пример. Разделим экран на две вертикальные колонки:
4.6. Два фрейма
Рис. 4.3.Окно с двумя вертикальными фреймами
Иерархия фреймов здесь получается следующая:
· window
o leftframe
o rightframe
Из основного окна (из скрипта, который можно было поместить в контейнер <HEAD> ) обратиться к левому фрейму можно с помощью window.leftframe, к правому — window.rightframe. Из каждого фрейма обратиться к основному окну можно какwindow.parent либо window.top (что в данном случае равносильно) или даже просто parent и top (так как приставкуwindow можно опускать). Наконец, из левого фрейма обратиться к правому фрейму можно как parent.rightframe илиtop.rightframe.
Усложним пример: разобьем правый фрейм на два по горизонтали:
4.7. Три фрейма
Рис. 4.4.Правый фрейм разбит на два по горизонтали
Фрейма с именем rightframe теперь не существует. Более того, все три фрейма непосредственно подчинены главному окну, т.е. иерархия выглядит следующим образом:
· window
o leftframe
o topframe
o botframe
Следовательно, мы можем поместить в контейнер <HEAD> следующий скрипт, устанавливающий цвет фона для всех трехфреймов: (открыть)
Для того чтобы фрейм rightframe все же появился в иерархии и ему подчинялись два правых фрейма, нужно свести оба наших примера в один. Это значит, что во фрейм rightframe мы должны загрузить отдельный фреймовый документ.
Основной документ | Документ в правом фрейме ( right.htm ) |
<HTML><HEAD></HEAD> <FRAMESET COLS=«50%,*»> <FRAME NAME=leftframe SRC=left.htm> <FRAME NAME=rightframe SRC=right.htm> </FRAMESET></HTML> | <HTML><HEAD></HEAD> <FRAMESET ROWS=«50%,*»> <FRAME NAME=topframe SRC=top.htm> <FRAME NAME=botframe SRC=bottom.htm> </FRAMESET></HTML> |
В этом случае иерархия фреймов будет выглядеть иначе:
· window
o leftframe
o rightframe
§ topframe
§ botframe
Теперь чтобы из главного окна обратиться ко всем трем фреймам и установить в них те же цвета фона, следует писать:
Таким образом, визуально на Web-странице мы получили тот же результат, что и с тремя фреймами, подчиненными одному старшему окну (см. пример 4.7). Однако этот вариант более гибкий: он позволяет работать независимо с фреймом rightframe в отдельном файле.