Атрибут data-* тега <param>
Описание
Атрибуты data-* для тега <param> позволяют хранить дополнительную пользовательскую информацию, связанную с параметром. Эти атрибуты не влияют на поведение плагина напрямую, но могут использоваться JavaScript для расширенной функциональности.
<object data="game.swf" type="application/x-shockwave-flash">
<param name="difficulty" value="hard" data-config-type="gameSetting">
<param name="skin" value="dark" data-config-type="uiSetting" data-requires-reload="true">
</object>
Особенности работы:
| Аспект | Описание |
|---|---|
| Синтаксис | data-любое_имя (в нижнем регистре) |
| Доступ из JS | Через dataset или getAttribute() |
| Значение | Всегда строка (для других типов нужно преобразование) |
Типичные сценарии использования:
- Хранение мета-информации о параметре
- Указание дополнительных условий применения параметра
- Маркировка параметров для обработки JavaScript
- Хранение резервных значений или подсказок
Пример с JavaScript:
<object id="mediaPlayer" classid="java:MediaPlayer.class">
<param name="volume" value="80" data-min="0" data-max="100" data-unit="percent">
</object>
<script>
const param = document.querySelector('#mediaPlayer param[name="volume"]');
console.log(param.dataset.min); // "0"
console.log(param.dataset.max); // "100"
console.log(param.dataset.unit); // "percent"
</script>
Рекомендации по именованию:
- Используйте осмысленные имена после префикса
data- - Придерживайтесь одного стиля именования (kebab-case рекомендуется)
- Избегайте слишком длинных имен
- Не используйте имена без префикса
data-
Ограничения:
- Не влияют на отображение без JavaScript
- Не предназначены для стилизации (используйте классы)
- Не заменяют стандартные атрибуты name/value
Примечание: Хотя data-атрибуты предоставляют гибкий способ хранения дополнительной информации, для сложных структур данных лучше использовать JSON в одном атрибуте (например, data-config='{"min":0,"max":100}').