HTML тег <param>
Устаревший HTML-тег <param> передавал именованные параметры плагинам, встроенным через <object>. Узнайте, что он делал и чем заменяется.
Устарел / не поддерживается. Тег
<param>больше не является частью стандарта HTML и не должен использоваться на новых страницах. Он существовал исключительно для настройки браузерных плагинов, а технология плагинов, которую он обслуживал (Flash, Java-апплеты, QuickTime, Silverlight), удалена из всех современных браузеров. Эта страница сохраняется как справочный материал и для понимания устаревшего кода.
Тег <param> («параметр») передавал именованные значения конфигурации плагину, встроенному с помощью элемента <object>. Каждый <param> задавал один параметр в виде пары name/value — подобно аргументу «ключ/значение», передаваемому плагину при его загрузке.
<object data="movie.swf" type="application/x-shockwave-flash">
<param name="quality" value="high">
<param name="bgcolor" value="#ffffff">
</object>Внутри одного <object> можно было размещать несколько <param>. Каждый из них требовал атрибутов name и value, и все они должны были располагаться до любого резервного содержимого (текста или разметки, отображаемых при ошибке загрузки объекта).
Зачем он существовал: плагины и NPAPI
До того как браузеры получили нативную поддержку медиа и насыщенных приложений, интерактивный контент — видеоплееры, игры, просмотрщики документов — работал внутри внешних плагинов через интерфейс NPAPI (Netscape Plugin Application Programming Interface). Наиболее распространёнными примерами были Adobe Flash, Java-апплеты, Microsoft Silverlight и Apple QuickTime.
Страница встраивала плагин с помощью <object> (или впоследствии удалённого элемента <applet>), а <param> был единственным способом передать параметры запуска. Для Flash-ролика можно было задать quality, bgcolor, loop или строку flashvars; для Java-апплета — путь code или специфичные для апплета настройки.
Примечание:
<param>также использовался внутри<applet>, но элемент<applet>был полностью удалён из HTML — он не просто устарел, он не имеет определённого поведения в современных браузерах.
Браузеры начали отключать NPAPI-плагины примерно в 2015 году и вскоре полностью от них отказались; Adobe прекратила поддержку Flash в конце 2020 года. Поскольку плагинов больше не осталось, тегу <param> стало нечего настраивать.
Важно:
<param>никогда не был допустим внутри<video>или<audio>. Эти элементы настраиваются через собственные атрибуты и дочерние элементы<source>и<track>— не через<param>.
Современные альтернативы
Почти всё, что раньше делали плагины, теперь имеет нативную HTML- или веб-замену:
- Видео и аудио — используйте нативные элементы
<video>и<audio>с их собственными атрибутами (controls,autoplay,loop,muted) и дочерними элементами<source>/<track>. - Интерактивные приложения и игры — создаются с помощью HTML, CSS, JavaScript, Canvas, WebGL или WebAssembly.
- Встраивание других документов — используйте
<object>,<iframe>или<embed>. - Передача конфигурации встраиваемому контенту — задавайте атрибуты
data-*на элементе (или в строке запроса встраивающего<iframe>) и считывайте их с помощью JavaScript вместо использования<param>.
<!-- The modern equivalent of "configuring an embed": data-* + JavaScript -->
<div id="player" data-autoplay="true" data-volume="0.5"></div>
<script>
const el = document.getElementById('player');
const autoplay = el.dataset.autoplay === 'true';
const volume = parseFloat(el.dataset.volume);
// initialize your player with autoplay and volume...
</script>Синтаксис
Тег <param> является пустым, то есть закрывающий тег не обязателен. Однако в XHTML тег <param> должен быть самозакрывающимся (<param />).
HTML-тег <param>
<object>
<param name="..." value="...">
</object>Пример HTML-тега <param>
<!DOCTYPE html>
<html>
<head>
<title>The title of the document</title>
</head>
<body>
<p>Embedded object example</p>
<object width="320" height="240" data="movie.swf" type="application/x-shockwave-flash">
<param name="quality" value="high">
</object>
</body>
</html>Пример HTML-тега <param> с атрибутами "name" и "value"
<!DOCTYPE html>
<html>
<head>
<title>The title of the document</title>
</head>
<body>
<p>Embedded object example</p>
<object width="320" height="240" data="example.pdf">
<param name="param1" value="value1">
</object>
</body>
</html>Атрибуты
| Атрибут | Значение | Описание |
|---|---|---|
| name | name | Задаёт имя параметра. Обязателен. |
| value | value | Задаёт значение параметра. Обязателен. |
| type | media_type | MIME-тип значения. Устарел — использовался только когда valuetype имел значение ref, чтобы сообщить плагину тип ресурса по указанному URL. |
| valuetype | data, object, ref | Способ интерпретации value плагином. Устарел. |
В HTML5 были сохранены только name и value; атрибуты type и valuetype были исключены.
О type и valuetype
Эти два атрибута сами по себе ничего не делали — они лишь описывали, как плагин должен читать value. Атрибут valuetype имел три возможных значения:
data(по умолчанию) —valueявляется обычной строкой, передаваемой непосредственно плагину.ref—valueявляется URL, указывающим на ресурс, который должен загрузить плагин. В этом случаеtypeсообщал плагину MIME-тип этого ресурса.object—valueявляетсяidдругого элемента<object>на странице.
Поскольку плагинов больше не существует, ни один из этих атрибутов не имеет никакого эффекта сегодня. Они задокументированы здесь только для того, чтобы вы могли распознать их в старом коде.
Примечание: Рассматривайте тег
<param>как исторический артефакт. Новые страницы должны использовать нативные<video>/<audio>, стандартное встраивание через<object>или<iframe>, а атрибутыdata-*, считываемые JavaScript, — для настройки встраиваемого контента.