Автор статьи: Головин Андрей
иногда бывает необходимо динамически изменять содержание страницы, причем, не имея возможности хранить это содержание в том же файле, что и страница. Т.е. задача состоит в том, чтобы в зависимости от действий пользователя добавить (или изменить) содержание страницы, взяв данные из другого файла, но не прегружая страницу.
Как всегда, разработчики Нетскейп Навигатор потеряли номера сотовых телефонов разработчиков Internet Explorer и не смогли договориться о совместимой реализации этих возможностей. Рассмотрим как это делается в этих браузерах
Internet Explorer
Для решения приведенной задачи используется элемент <IFRAME> (inline frame или встроенный кадр). Для задания источника данных в этом элементе используется атрибут SRC. Например, <IFRAME SRC=»cool.html»></IFRAME>. Для динамического изменения источника посредством скрипта необходимо изменить следующее свойство: parent.iframe_id.document.location.
Пример для Internet Explorer: >outer_ie.html
Netscape Navigator
Здесь необходимо использовать элемент <LAYER>. источник в тексте HTML задается также с помощью атрибута SRC. А в скрипте необходимо установить свойство: document.layer_id.src.
Пример для Netscape Navigator: outer_nn.html
Все вместе.
Прежде всего, необходимо заметить, что вид страницы в разных браузерах оплучается абсолютно разным. Для того, чтобы привести все к одному виду необходимо указать некоторые атрибуты использованных тэгов:
<LAYER
ID=»testLyr»
NAME=»testLyr»
SRC=»outer_1.html»
LEFT=50 TOP=50 WIDTH=300 HEIGHT=300
CLIP=»0,0,300,300″>
</LAYER>
<IFRAME
ID=»testFrm»
NAME=»testFrm»
SRC=»outer_1.html»
MARGINWIDTH=»0″
MARGINHEIGHT=»0″
FRAMEBORDER=»NO»>
</IFRAME>
И введем описание стиля для элемента <IFRAME>:
#testFrm {
position:absolute;
left:50; top:50; width:300; height: 300;
clip:rect(0,300,300,0);
width: 300px;
height: 300px;
}
Теперь странички выглядят, практически, одинаково.
Я уже писал, как лучше организовывать процедуры, которые должны выполнятся в обоих браузерах. Так поступим и в этот раз. Пример: outer.html.