W3docs

Tag HTML <applet>

Il tag HTML <applet> incorporava applet Java in una pagina. Scopri perché è stato rimosso, cosa lo ha sostituito e vedi esempi legacy.

Il tag <applet> veniva utilizzato per incorporare un'applet Java — un piccolo programma scritto in Java — direttamente in una pagina web. È obsoleto: nessun browser moderno è in grado di eseguire applet, quindi il tag non ha alcun effetto nei browser attuali e non dovrebbe essere utilizzato nelle nuove pagine. Questo capitolo spiega cosa faceva <applet>, perché è scomparso e cosa utilizzare oggi.

L'elemento <applet> poteva contenere altri tag HTML e testo tra il tag di apertura e quello di chiusura. Quel contenuto di fallback veniva mostrato quando l'applet non riusciva a caricarsi — il che, oggi, accade sempre.

Perché <applet> è obsoleto

Le applet Java dipendevano da un plug-in del browser (il Java Plug-in) caricato tramite l'interfaccia plug-in NPAPI. Due eventi hanno posto fine a quell'approccio:

  • NPAPI è stato rimosso dai browser. Chrome ha disabilitato NPAPI per impostazione predefinita nel 2015 e lo ha rimosso completamente; Firefox ha abbandonato il supporto per i plug-in diversi da Flash nel 2017. Senza NPAPI non c'è modo per il browser di ospitare il Java Plug-in.
  • Il Java Plug-in ha raggiunto la fine del ciclo di vita. Oracle ha annunciato il piano per ritirare il plug-in del browser nel 2016, lo ha formalmente deprecato con JDK 9 (2017) e lo ha rimosso dal JDK con JDK 11 (2018). Anche con un browser compatibile, non rimane alcun plug-in da eseguire.

Queste rimozioni sono state guidate dal modello di sicurezza dei browser: i plug-in nativi nella pagina operavano con ampio accesso al sistema e rappresentavano una frequente fonte di exploit, quindi i produttori li hanno eliminati progressivamente in favore di tecnologie web sandboxed.

Cosa sostituisce le applet Java oggi? Non esiste una sostituzione diretta, perché l'obiettivo — eseguire codice nativo arbitrario nella pagina — è stato intenzionalmente eliminato. I moderni equivalenti dipendono da ciò che faceva l'applet:

  • Per calcoli o giochi, porta la logica in JavaScript e disegna con l'elemento <canvas> o WebGL.
  • Per codice nativo esistente o ad alte prestazioni, compilalo in WebAssembly e richiamalo da JavaScript.
  • Per incorporare media esterni o documenti, usa l'elemento <embed> o <object>.
Pericolo

Questo elemento è un tag HTML deprecato in HTML 4.01 ed è completamente obsoleto in HTML5. È stato rimosso dallo standard e non funzionerà in nessun browser moderno. Per nuovi lavori, usa JavaScript, WebAssembly, o gli elementi <object> / <embed>.

Sintassi

Il tag <applet> viene usato in coppia. Il contenuto è scritto tra il tag di apertura (<applet>) e quello di chiusura (</applet>).

Esempio del tag 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>
Attenzione

Questo è un esempio legacy solo a scopo di riferimento. Poiché nessun browser attuale può caricare applet Java, l'anteprima live sarà vuota — i browser moderni mostrano solo il contenuto di fallback (qui, il testo in grassetto) o nulla. Il tag <param> passava i valori di configurazione all'applet.

Risultato

Lo screenshot seguente mostra come appariva un'applet funzionante in un vecchio browser con il Java Plug-in installato.

Un'applet Java renderizzata in un browser più vecchio con il Java Plug-in

Sostituzione legacy con il tag HTML <object>:

In HTML 4.01, l'elemento <object> era suggerito come sostituto standard per <applet>. I valori codetype e classid specifici di Java mostrati di seguito sono anch'essi obsoleti e non funzionano più in nessun browser — sono documentati solo per mostrare il percorso di migrazione storico, non come codice funzionante.

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>
Attenzione

Anche questo snippet verrà visualizzato vuoto nei browser moderni. Per progetti reali, sostituisci la funzionalità dell'applet con JavaScript e <canvas>, oppure compila il codice nativo in WebAssembly. Gli elementi <object> e <embed> rimangono utili per incorporare media e documenti esterni.

Attributi

Gli attributi seguenti si applicavano esclusivamente all'elemento <applet>. Sono obsoleti e non fanno parte di nessuno standard HTML attuale — non avranno alcun effetto nei browser moderni. Questa tabella è fornita solo a scopo storico.

AttributoValoreDescrizione
alignleft right top bottom middle baselineViene utilizzato per posizionare l'applet rispetto agli altri elementi.
alttextViene utilizzato per creare un testo alternativo per l'applet.
archiveURLViene utilizzato per definire la posizione del file archivio.
codeURLViene utilizzato per definire il nome dell'applet Java.
objectnameViene utilizzato per definire un riferimento a una rappresentazione serializzata di un'applet.
codebaseURLFornisce un URL base relativo per le applet specificate nell'attributo code.
heightpixelsDefinisce l'altezza dell'applet.
hspacepixelsViene utilizzato per definire lo spazio orizzontale attorno all'applet.
namenameViene utilizzato per assegnare un nome all'applet.
vspacepixelsViene utilizzato per definire lo spazio verticale attorno all'applet.
widthpixelViene utilizzato per definire la larghezza dell'applet.

Esercizio

Pratica
Quali delle seguenti affermazioni sul tag HTML <applet> sono corrette?
Quali delle seguenti affermazioni sul tag HTML <applet> sono corrette?
Was this page helpful?