Главная
К библиотеке


Внешние файлы в IE и NN

Иногда бывает необходимо динамически изменять содержание страницы, причем, не имея возможности хранить это содержание в том же файле, что и страница. Т.е. задача состоит в том, чтобы в зависимости от действий пользователя добавить (или изменить) содержание страницы, взяв данные из другого файла, но не прегружая страницу.

Как всегда, разработчики Нетскейп Навигатор потеряли номера сотовых телефонов разработчиков 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.


Материал с сайта http://exper.ural.ru
Hosted by uCoz