Теги <OBJECT> и <EMBED>

We use cookies. Read the Privacy and Cookie Policy

Теги <OBJECT> и <EMBED>

Собственно, оба тега — и <OBJECT>, и <EMBED> — выполняют одну и ту же задачу. Они задают местоположение внедренного элемента на Web-странице и интернет-адрес файла, содержащего данные, необходимые для отображения этого элемента. Различие их состоит лишь в том, что тег <EMBED> объявлен устаревшим и не рекомендован к использованию, а вместо него рекомендуется использовать тег <OBJECT>. Но давайте обо всем по порядку…

Тег <OBJECT>

Парный тег <OBJECT>, в общем случае, служит для помещения на Web-страницу компонента ActiveX. В том числе с его помощью можно поместить на Web-страницу встраиваемый проигрыватель Flash, оформленный в виде компонента ActiveX, и загрузить в него нужный файл Shockwave/Flash. (Как мы помним из главы /, встраиваемый проигрыватель Flash работает совместно с Web-обозревателем.) Также с помощью этого тега можно поместить на Web-страницу проигрыватели Windows Media и QuickTime и загрузить в них фильмы в форматах AVI и QuickTime, звуки в форматах WAV и MIDI и пр.

Вот пример использования тега <OBJECT> для помещения на Web-страницу проигрывателя Flash, в котором должен воспроизводиться фильм movie.swf:

<OBJECT CLASSID="clsid:d27cdb6e-ae6d-llcf-96b8-444553540000" WIDTH="100" S>HEIGHT="100" CODEBASE="http://fpdownload.macromedia.com/pub/shockwave/ S>cabs/flash/swflash.cab#version=8,0,0,0">

<PARAM NAME="MOVIE" VALUE="movie.swf">

<PARAM NAME="PLAY" VALUE="true">

<PARAM NAME="LOOP" VALUE="true">

<PARAM NAME="QUALITY" VALUE="high">

</OBJECT>

Видно, что внутри тега <OBJECT> помещается набор тегов <PARAM>, с помощью которых задаются различные параметры самого проигрывателя Flash, оформленного в виде компонента ActiveX. Каждому такому параметру соответствует свой тег <PARAM>; имя параметра задается атрибутом name, а значение — атрибутом VALUE.

Давайте посмотрим на приведенный выше HTML-код. Здесь мы поместили на Web-страницу проигрыватель Flash, задали файл Shockwave/Flash (параметр "MOVIE"), заставили его воспроизвестись сразу же после загрузки (параметр "PLAY") и зациклили (параметр "LOOP"). Напоследок мы задали качества вывода графики (параметр "QUALITY"). Как видите, все параметры имеют "говорящие" имена, так что сразу ясно, какой параметр за что "отвечает".

Тег <ОВJECT> содержит довольно много атрибутов. С их помощью задаются, в частности, размеры внедренного компонента ActiveX на Web-странице (атрибуты WIDTH и HEIGHT) и интернет-адрес его дистрибутива (атрибут CODEBASE). Таким образом, если нужный компонент на клиентском компьютере не установлен, Web-обозреватель сможет самостоятельно загрузить и установить его.

Тег <ОВJECT> поддерживается Web-обозревателями Microsoft Internet Explorer, начиная с версии 3.0, и Netscape Navigator версии не старше 4.0. Также он поддерживается всеми программами, появившимися в последнее время: Opera, Mozilla, Firefox и Apple Safari.

Тег <ОВJECT> стандартизирован и рекомендован к использованию комитетом W3C. Предполагается, что со временем он заменит собой все остальные теги, предназначенные для помещения на Web-страницы внедренных элементов, в том числе и тег <IMG>.

Тег <EMBED>

Парный тег <EMBED>, в общем случае, служит для помещения на Web-страницу модуля расширения Web-обозревателя. В том числе с его помощью можно поместить на Web-страницу встраиваемый проигрыватель Flash, оформленный в виде модуля расширения, и загрузить в него нужный файл Shockwave/Flash. Вот пример тега <EMBED>, который это делает:

<EMBED SRC="movie.swf" WIDTH="100" HEIGHT="100" PLAY="true" LOOP="true" QUALITY="high" PLUGINSPAGE="http://www.Macromedia.com/go/getflashplayer">

</EMBED>

В отличие от тега <OBJECT>, здесь все необходимые параметры задаются в атрибутах самого тега <EMBED>. В них указываются размеры внедренного модуля на Web-странице (атрибуты WIDTH и HEIGHT), имя файла Shockwave/Flash (атрибут SRC), путь к дистрибутиву модуля расширения (атрибут PLUGINSPAGE) и качество воспроизведения (атрибут QUALITY). Никакие дополнительные теги в этом случае не нужны.

Тег <EMBED> начал поддерживаться Web-обозревателями Microsoft Internet Explorer версии 3.0 и Netscape Navigator 2.0. Хотя он в настоящее время не рекомендован к использованию комитетом W3C, но поддерживается до сих пор. Однако во всех вновь создаваемых Web-страницах рекомендуется использовать тег <OBJECT>.

Совместное использование тегов <OBJECT> и <EMBED>

На практике для решения проблем совместимости разных программ Web-обозревателей теги <OBJECT> и <EMBED> используются совместно. Например, вот так:

<OBJECT CLASSID="clsid:d27cdb6e-ae6d-llcf-96b8-444553540000" WIDTH="100"HEIGHT="100"CODEBASE="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">

<PARAM NAME="M0VIE" VALUE="movie.swf">

<PARAM NAME="PLAY" VALUE="true">

<PARAM NAME="L00P" VALUE="true">

<PARAM NAME="QUALITY" VALUE="high">

<EMBED SRC="movie.swf" WIDTH="100" HEIGHT="100" PLAY="true" L00P="true" QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">

</EMBED>

</OBJECT>

Видно, что в этом случае тег <EMBED> вложен внутрь тега <OBJECT> вместе с набором тегов <PARAM>. Что же происходит, если клиент пытается просмотреть Web-страницу, содержащую такой код? Давайте рассмотрим эту ситуацию для разных Web-обозревателей.

Если клиент использует современный Web-обозреватель, а именно, Microsoft Internet Explorer 3.0 или Netscape Navigator 4.0 (или более новые их версии), происходит следующее. Web-обозреватель считывает тег <OBJECT>, затем — теги <PARAM>, загружает компонент ActiveX, файл фильма и выводит его на экран. Тег <EMBED>, вложенный внутрь тега <OBJECT>, в этом случае игнорируется.

Если же клиент использует более старые версии программ Web-обозревателей, все происходит по-другому. Так как теги <OBJECT> и <PARAM> неизвестны этим программам, они их игнорируют — это стандартное поведение Web-обозревателя, встретившего незнакомый тег. В этом случае обрабатывается тег <EMBED>.

На заметку

Возможен, правда, и третий вариант. Клиент может использовать Microsoft Internet Explorer 2.0 — первую версию Web-обозревателя фирмы Microsoft, не поддерживающую ни тег <OBJECT>, ни тег <EMBED>. Но вряд ли сейчас кто-то еще пользуется этой курьезной программой, так что ее не стоит принимать в расчет.

Данный текст является ознакомительным фрагментом.