W3docs

Etiqueta HTML <applet>

La etiqueta HTML <applet> incrustaba applets Java en una página. Descubre por qué se eliminó, qué la reemplazó y ejemplos históricos.

La etiqueta <applet> se usaba para incrustar un applet de Java — un pequeño programa escrito en Java — directamente en una página web. Está obsoleta: ningún navegador moderno puede ejecutar applets, por lo que la etiqueta no hace nada en los navegadores actuales y no debe usarse en páginas nuevas. Este capítulo explica qué hacía <applet>, por qué desapareció y qué utilizar hoy en día.

El elemento <applet> podía contener otras etiquetas HTML y texto entre sus etiquetas de apertura y cierre. Ese contenido alternativo se mostraba cuando el applet no lograba cargarse — lo que, hoy en día, ocurre siempre.

Por qué <applet> está obsoleto

Los applets de Java dependían de un complemento del navegador (el Java Plug-in) cargado a través de la interfaz de complementos NPAPI. Dos factores pusieron fin a ese enfoque:

  • NPAPI fue eliminado de los navegadores. Chrome deshabilitó NPAPI de forma predeterminada en 2015 y lo eliminó por completo; Firefox abandonó el soporte para complementos distintos de Flash en 2017. Sin NPAPI no hay forma de que el navegador aloje el Java Plug-in.
  • El Java Plug-in llegó al final de su vida útil. Oracle anunció su plan de retirar el complemento del navegador en 2016, lo deprecó formalmente con JDK 9 (2017) y lo eliminó del JDK con JDK 11 (2018). Incluso con un navegador compatible, ya no queda ningún complemento para ejecutar.

Estas eliminaciones fueron impulsadas por el modelo de seguridad del navegador: los complementos nativos en página se ejecutaban con un amplio acceso al sistema y eran una fuente frecuente de exploits, por lo que los fabricantes los fueron suprimiendo en favor de tecnologías de plataforma web ejecutadas en entorno aislado.

¿Qué reemplaza a los applets de Java hoy? No existe un reemplazo directo, porque el objetivo — ejecutar código nativo arbitrario en la página — ha sido eliminado intencionalmente. Los equivalentes modernos dependen de lo que hacía el applet:

  • Para cómputo o juegos, porta la lógica a JavaScript y dibuja con el elemento <canvas> o WebGL.
  • Para código de alto rendimiento o código nativo existente, compílalo a WebAssembly y llámalo desde JavaScript.
  • Para incrustar medios externos o documentos, usa el elemento <embed> o <object>.
Peligro

Este elemento es una etiqueta HTML obsoleta en HTML 4.01 y está completamente en desuso en HTML5. Ha sido eliminado del estándar y no funcionará en ningún navegador moderno. Para trabajos nuevos, usa JavaScript, WebAssembly o los elementos <object> / <embed> en su lugar.

Sintaxis

La etiqueta <applet> va en pares. El contenido se escribe entre las etiquetas de apertura (<applet>) y cierre (</applet>).

Ejemplo de la etiqueta HTML <applet>:

HTML applet Code 1

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <applet code="game.class" align="left" archive="game.zip" height="250" width="350">
      <param name="difficulty" value="easy" />
      <b>You need Java to play this game.</b>
    </applet>
  </body>
</html>
Advertencia

Este es un ejemplo heredado solo para referencia. Dado que ningún navegador actual puede cargar applets de Java, la vista previa en vivo estará vacía — los navegadores modernos muestran únicamente el contenido alternativo (en este caso, el texto en negrita) o nada en absoluto. La etiqueta <param> pasaba valores de configuración al applet.

Resultado

La captura de pantalla a continuación muestra el aspecto que tenía un applet en funcionamiento en un navegador antiguo con el Java Plug-in instalado.

Un juego de applet Java renderizado en un navegador antiguo con el Java Plug-in

Reemplazo histórico con la etiqueta HTML <object>:

En HTML 4.01, el elemento <object> fue propuesto como reemplazo estándar de <applet>. Los valores específicos de Java codetype y classid que se muestran a continuación son en sí mismos obsoletos y ya no funcionan en ningún navegador — se documentan solo para mostrar la ruta de migración histórica, no como código funcional.

HTML object example (legacy)

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <object codetype="application/java" classid="java:programmingtutorials.class" height="200" width="200">Programming Tutorials</object>
  </body>
</html>
Advertencia

Este fragmento también se renderizará en blanco en los navegadores modernos. Para proyectos reales, reemplaza la funcionalidad del applet con JavaScript y <canvas>, o compila el código nativo a WebAssembly. Los elementos <object> y <embed> siguen siendo útiles para incrustar medios y documentos externos.

Atributos

Los atributos que se indican a continuación se aplicaban únicamente al elemento <applet>. Son obsoletos y no forman parte de ningún estándar HTML actual — no tendrán efecto en los navegadores modernos. Esta tabla es solo para referencia histórica.

AtributoValorDescripción
alignleft right top bottom middle baselineSe usa para posicionar el applet en relación con otros elementos.
alttextSe usa para crear un texto alternativo para el applet.
archiveURLSe usa para definir la ubicación del archivo comprimido.
codeURLSe usa para definir el nombre del applet de Java.
objectnameSe usa para definir una referencia a una representación serializada de un applet.
codebaseURLProporciona una URL base relativa para los applets especificados en el atributo code.
heightpixelsDefine la altura del applet.
hspacepixelsSe usa para definir el espacio horizontal alrededor del applet.
namenameSe usa para asignar un nombre al applet.
vspacepixelsSe usa para definir el espacio vertical alrededor de un applet.
widthpixelSe usa para definir el ancho de un applet.

Práctica

Práctica
¿Cuáles de las siguientes afirmaciones sobre la etiqueta HTML <applet> son correctas?
¿Cuáles de las siguientes afirmaciones sobre la etiqueta HTML <applet> son correctas?
Was this page helpful?