Добавляем...


Типы MIME
Но откуда браузер "знает", какой тип данных подходит тому или иному модулю расширения? Ответ дают типы MIME (Multipurpose Internet Mail Extension — многоцелевые расширения электронной почты в Internet).

MIME-тип — это короткая строка вида медиа-тип/подтип, где медиа-тип описывает общую природу данных, а подтип характеризует их более конкретно.

Например, изображения GIF имеют MIME-тип image/gif, который указывает, что данные являются графическими, а их формат — GIF (Graphics Interchange Format — формат графического обмена, обеспечивает сжатие без потерь).

Точно так же файлы CSS имеют тип text/ess, который указывает, что файл скомпонован из обычного текста, но подчиняется спецификациям CSS. Главными медиа-типами MIME являются application (фирменный формат данных, используемый приложением), audio, image, message, model, multipart, text и video.

Каждому медиа-типу соответствует не более одного обработчика в браузере. Стандартные медиа-типы Web, такие как, например, (X)HTML, CSS, обычный текст и изображения, обрабатываются непосредственно браузером.

Другие типы, например MPEG-видео и Macromedia Flash, ассоциируются с соответствующими модулями расширений (если они установлены). Имейте в виду, что один модуль расширения может обрабатывать содержимое нескольких MIME-типов (например, различные варианты видео), но каждый MIME-тип должен быть связан только с одним модулем расширения.

Если бы один тип ассоциировался с несколькими модулями расширений, браузеру на основании определенных правил пришлось бы решать, какому из компонентов предназначены данные.

Проверка поддержки MIME-типов

Netscape 3+, Opera 4+ и браузеры на базе Mozilla обеспечивают простую возможность проверки способности браузера обрабатывать данные конкретных MIME-типов.

Свойство mimeTypes [ ] объекта Navigator содержит массив объектов MimeType. Некоторые интересные свойства объекта MimeType показаны в таблице.
Свойство Описание
description Строка, описывающая тип данных, с которым связывается соответствующий MIME-тип
enabledPlugin Ссылка на подключаемый модуль расширения, соответствующий MIME-типу
suffixes Массив строк, содержащих расширения файлов, связанных с MIME-типом
type Строка, содержащая MIME-тип


Браузер передает внедренные объекты модулям расширений в соответствии с данными, содержащимися в этих объектах.

Удобно представлять себе соответствующую процедуру таким образом, что браузер проверяет МIMЕ-типы и расширения файлов в массиве mimeTypes, чтобы найти ссылку enabledPlugin, указывающую на подходящий модуль расширения.

Программист может таким образом использовать массив mimeTypes, чтобы проверить, способен ли браузер обработать конкретный тип данных.

Чтобы понять тонкости этого процесса, можете, например, проверить, какие МIMЕ-типы поддерживает ваш браузер Netscape. Следующий программный код печатает содержимое массива mimeTypes [ ].


if (navigator.mimeTypes)
{
document.write ("<table><tr><th>Type</th>") ;
document.write ("<th>Suffixes</th><th>Description</th></tr>") ;
for ( var i=0; i <navigator.mimeTypes.length; i++)
{
document.write(" <tr><td>" + navigator.mimeTypes[i].type + "</td>");
document.write("<td>" + navigator.mimeTypes[i].suffixes + "</td>");
document.write("<td>" + navigator.mimeTypes[i].description
+ "</td></tr>") ;
}
document.write("</table>");
}

Часть возвращаемых значений в условиях типичной установки браузера на базе Mozilla. Аналогичную информацию можно получить, напечатав about: plugins в строке адреса браузера Netscape или браузера на базе Mozilla.

Чтобы проверить возможность поддержки определенного типа данных, сначала следует получить доступ к массиву mimeTypes [ ] по строке MIME-типа, которой вы интересуетесь.

Если объект MimeType для указанного типа существует, тогда с помощью проверки свойства enabledPlugin объекта MimeType следует убедиться, что модуль расширения доступен. Соответствующий подход используется в следующем фрагменте программного кода:


if (navigator.mimeTypes
&& navigator.mimeTypes["video/mpeg"]
&& navigator.mimeTypes["video/mpeg"].enabledPlugin)
document.write('<embed src="/movies/mymovie.mpeg" width="300"' + '
height="200"></embed>') ;
else
document.write('<img src="myimage.jpg" width="300" height="200"' + '
alt="Mоя игрушка" />');

Если в браузере пользователя доступен массив mimeTypes [ ], браузер поддерживает видео в формате MPEG (video/mpeg) и модуль расширения установлен, то в документ внедряется файл MPEG-видео.

Если соответствующие условия не выполняются, то в страницу добавляется простое изображение. Здесь для краткости пропущен атрибут pluginspage, поскольку программный код уже выяснил, что подходящий модуль расширения установлен.

Предлагаемую здесь технику проверки параметров поддержки MIME-типов можно использовать, когда вас интересует только поддержка конкретного типа данных.

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

Чтобы использовать более глубокие возможности подключаемого модуля, обычно требуется знать и о том, модуль расширения какого из производителей используется. Для этого требуется совершенно другой подход.


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика