Etiqueta HTML <param>
La etiqueta HTML <param> (obsoleta) pasaba parámetros con nombre a complementos incrustados con <object>. Conozca qué hacía y sus alternativas modernas.
Obsoleto / en desuso. La etiqueta
<param>ya no forma parte del estándar HTML y no debe utilizarse en páginas nuevas. Existía únicamente para configurar complementos del navegador, y la tecnología de complementos que servía (Flash, Java applets, QuickTime, Silverlight) ha sido eliminada de todos los navegadores modernos. Esta página se conserva como referencia y para comprender código heredado.
La etiqueta <param> ("parámetro") pasaba valores de configuración con nombre a un complemento incrustado mediante el elemento <object>. Cada <param> proporcionaba un ajuste como un par name/value — similar a un argumento clave/valor entregado al complemento al cargarse.
<object data="movie.swf" type="application/x-shockwave-flash">
<param name="quality" value="high">
<param name="bgcolor" value="#ffffff">
</object>Era posible colocar más de un <param> dentro de un <object>. Cada uno requería los atributos name y value, y todos debían aparecer antes de cualquier contenido alternativo (el texto o marcado que se mostraba cuando el objeto no se cargaba correctamente).
Por qué existía: los complementos y NPAPI
Antes de que los navegadores tuvieran soporte nativo para medios y aplicaciones enriquecidas, el contenido interactivo — reproductores de vídeo, juegos, visores de documentos — se ejecutaba dentro de complementos externos a través de una interfaz llamada NPAPI (Netscape Plugin Application Programming Interface). Los ejemplos más comunes eran Adobe Flash, Java applets, Microsoft Silverlight y Apple QuickTime.
La página incrustaba el complemento con <object> (o el elemento <applet>, ya eliminado), y <param> era la única forma de pasar opciones de inicio al complemento. Para una película Flash se podía establecer quality, bgcolor, loop o una cadena flashvars; para un Java applet se podía pasar una ruta code u otras opciones específicas del applet.
Advertencia:
<param>también se usaba dentro de<applet>, pero<applet>fue eliminado completamente de HTML — no solo está en desuso, sino que no tiene ningún comportamiento definido en los navegadores modernos.
Los navegadores comenzaron a deshabilitar los complementos NPAPI alrededor de 2015 y los eliminaron por completo poco después; Adobe finalizó el soporte de Flash a finales de 2020. Sin complementos que configurar, <param> ya no tiene ninguna función.
Importante:
<param>nunca fue válido dentro de<video>ni de<audio>. Esos elementos se configuran mediante sus propios atributos y mediante los elementos hijo<source>y<track>— no a través de<param>.
Alternativas modernas
Casi todo lo que los complementos hacían antes tiene ahora un reemplazo nativo en HTML o en la plataforma web:
- Vídeo y audio — use los elementos nativos
<video>y<audio>con sus propios atributos (controls,autoplay,loop,muted) y los hijos<source>/<track>. - Aplicaciones interactivas y juegos — construidos con HTML, CSS, JavaScript, Canvas, WebGL o WebAssembly.
- Incrustar otros documentos — use
<object>,<iframe>o<embed>. - Pasar configuración a un elemento incrustado — establezca atributos
data-*en el elemento (o en la cadena de consulta del<iframe>que lo incrusta) y léalos con JavaScript, en lugar de usar<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>Sintaxis
La etiqueta <param> es vacía, lo que significa que no se requiere la etiqueta de cierre. Sin embargo, en XHTML, la etiqueta <param> debe ser autocerrada (<param />).
Etiqueta HTML <param>
<object>
<param name="..." value="...">
</object>Ejemplo de la etiqueta 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>Ejemplo de la etiqueta HTML <param> con los atributos "name" y "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>Atributos
| Atributo | Valor | Descripción |
|---|---|---|
| name | name | Especifica el nombre del parámetro. Obligatorio. |
| value | value | Especifica el valor del parámetro. Obligatorio. |
| type | media_type | El tipo MIME del valor. Obsoleto — solo se usaba cuando valuetype era ref, para indicar al complemento qué tipo de recurso apuntaba la URL referenciada. |
| valuetype | data, object, ref | Cómo debe interpretar el complemento el valor value. Obsoleto. |
Solo name y value se incorporaron a HTML5; type y valuetype fueron eliminados.
Sobre type y valuetype
Estos dos atributos nunca hicieron nada por sí solos — solo describían cómo debía leer el complemento el valor value. El atributo valuetype tenía tres posibles valores:
data(el predeterminado) —valuees una cadena de texto simple que se pasa directamente al complemento.ref—valuees una URL que apunta a un recurso que el complemento debe cargar. En este caso,typeindicaba al complemento el tipo MIME de ese recurso.object—valuees elidde otro<object>en la página.
Dado que los complementos ya no existen, ninguno de estos tiene efecto hoy en día. Se documentan aquí solo para que puedas reconocerlos en código antiguo.
Nota: Trate la etiqueta
<param>como algo histórico. Las páginas nuevas deben usar<video>/<audio>nativos, incrustación estándar con<object>o<iframe>, y atributosdata-*leídos por JavaScript para configurar un elemento incrustado.