Спецификация HTML 4.01


Правила представления объектов



13.3.1 Правила представления объектов

ПА должны интерпретировать элемент OBJECT в соответствии с со следующими правилами приоритета:

  1. ПА должен сначала попытаться отобразить объект. Он не должен отображать содержимое элементов, но обязан проверить элементы на предмет наличия каких-либо прямых потомков, которые являются элементами PARAM (см. инициализация объекта) или элементами MAP (см. клиентские карты изображений).
  2. Если ПА не может по каким-либо причинам отобразить объект (не сконфигурирован, недостаточно ресурсов, неверная архитектура и т.д.), он обязан попытаться отобразить его (объекта) содержимое.

Авторы не должны включать содержимое в элементы OBJECT, появляющиеся в элементе HEAD.

В следующем примере мы вставляем аплет аналоговых часов в документ посредством элемента OBJECT. Аплет, написанный на языке Python, не требует дополнительных данных или значений для этапа выполнения. Атрибут classid определяет размещение аплета:

<P><OBJECT classid="http://www.miamachina.it/analogclock.py"> </OBJECT>

Обратите внимание, что часы будут отображены сразу, как только ПА интерпретирует это объявление OBJECT. Можно отсрочить отображение объекта, первоначально объявив его (описано ниже).



Авторы должны дополнить это объявление включением альтернативного текста как содержимого OBJECT на тот случай, если ПА не сможет отобразить часы.

<P><OBJECT classid="http://www.miamachina.it/analogclock.py"> An animated clock. </OBJECT>

Важным следствием дизайна элементов OBJECT является то, что он предоставляет механизм альтернативного представления объектов; каждое объявление внедрённого OBJECT может специфицировать альтернативные типы содержимого. Если ПА не может отобразить наиболее удалённые OBJECT, он пытается отобразить содержимое, которое может быть другим элементом OBJECT и т.д.

В следующем примере мы внедряем несколько объявлений OBJECT, чтобы проиллюстрировать, как работают альтернативные представления.
ПА будет пытаться отобразить первый элемент OBJECT, который он сможет, в следующем порядке:
(1) аплет Earth, написанный на языке Python,
(2) MPEG-анимацию Earth,
(3) GIF-рисунок Earth,
(4) альтернативный текст.

<P> <!-- Сначала пытается выполнить аплет Python --> <OBJECT title="The Earth as seen from space" classid="http://www.observer.mars/TheEarth.py"> <!-- В противном случае, MPEG video --> <OBJECT data="TheEarth.mpeg" type="application/mpeg"> <!-- В противном случае, рисунок GIF --> <OBJECT data="TheEarth.gif" type="image/gif"> <!-- В противном случае отображает текст --> The <STRONG>Earth</STRONG> as seen from space. </OBJECT> </OBJECT> </OBJECT>

Самое внешнее объявление специфицирует аплет, который не требует дополнительных данных или начальных значений. Второе объявление специфицирует анимацию MPEG и, поскольку не определяется размещение программы обработки MPEG, обращается к ПА для обработки анимации. Мы также установили атрибут type, чтобы ПА, "знающий", что он не может обработать MPEG, не загружал "TheEarth.mpeg" из сети. Третье объявление специфицирует размещение файла GIF и определяет альтернативный текст на тот случай, если все остальные механизмы не сработают.

Инлайн или внешние данные. Отображаемые данные могут быть получены двумя путями: инлайн (т.е. из самого документа) и из внешнего источника. Хотя предыдущий метод обычно приводит к более быстрому отображению, это не всегда бывает удобно при выводе данных большого объёма.

Вот пример, иллюстрирующий, как инлайн-данные могут быть поданы в OBJECT:

<P> <OBJECT id="clock1" classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="data:application/x-oleobject;base64, ...base64 data..."> A clock. </OBJECT>

Информацию о размере объекта, выравнивании и рамках см. в визуальном представлении объектов, изображений и аплетов.



Содержание  Назад  Вперед