W3docs

Attributi di Evento Globali

Gli attributi di evento globali in HTML permettono di far rispondere il browser ad azioni come clic, pressione di tasti o invio di moduli tramite JavaScript.

Un evento si verifica quando il browser reagisce a una particolare azione — un utente che fa clic su un pulsante del mouse, preme un tasto, riproduce un video, invia un modulo, ridimensiona la finestra e così via. Per rispondere a un evento, si collega un handler: un frammento di script (solitamente JavaScript) che viene eseguito quando l'evento si attiva.

HTML consente di collegare un handler direttamente nel markup tramite un attributo di evento. Ogni attributo di questa pagina inizia con on seguito dal nome dell'evento (onclick, onkeydown, onsubmit, …). Tutti sono stati aggiunti in HTML5 e accettano codice JavaScript come valore:

<button onclick="alert('Clicked!')">Click me</button>

Questi attributi di evento sono globali — la maggior parte può essere inserita su qualsiasi elemento — ma ciascuno ha senso solo nel contesto appropriato (attributi di modulo sui controlli di modulo, attributi media su <audio>/<video>, e così via).

Attenzione

Gli attributi inline on* sono sconsigliati nel codice moderno. Mescolano il comportamento nel markup, non permettono facilmente di collegare più di un handler e vengono bloccati da una rigida Content Security Policy. Preferire addEventListener in uno script separato, che mantiene HTML e JavaScript separati e consente a più handler di ascoltare lo stesso evento:

<button id="myBtn">Click me</button>

<script>
  const btn = document.getElementById("myBtn");
  btn.addEventListener("click", () => {
    alert("Clicked!");
  });
</script>

Le tabelle seguenti elencano gli attributi di evento per categoria. Per un trattamento più approfondito del funzionamento degli eventi nel browser, consultare JavaScript Events e i correlati HTML Global Attributes.

Attributi di Evento della Finestra

Gli eventi della finestra vengono attivati per l'oggetto window. Di solito vengono inseriti sul tag <body>, dove il browser li mappa su window.

AttributoDescrizione
onafterprintSi attiva dopo che il documento è stato stampato.
onbeforeprintSi attiva prima che il documento venga stampato.
onbeforeunloadSi attiva prima che il documento venga scaricato (ad es. l'utente sta per lasciare la pagina).
onblurSi attiva quando la finestra perde il focus (l'utente passa a un'altra scheda o applicazione).
onerrorSi attiva quando si verifica un errore durante il caricamento del documento o di una risorsa.
onhashchangeSi attiva quando il frammento (la parte dell'URL dopo #) cambia.
onloadSi attiva quando l'intera pagina — immagini, CSS e script — ha terminato il caricamento.
onmessageSi attiva quando la finestra riceve un messaggio (ad es. da postMessage).
onofflineSi attiva quando il browser perde la connessione di rete.
ononlineSi attiva quando il browser recupera la connessione di rete.
onpagehideSi attiva quando l'utente naviga lontano dalla pagina.
onpageshowSi attiva quando l'utente naviga verso la pagina.
onpopstateSi attiva quando cambia la voce attiva nella cronologia.
onresizeSi attiva quando la finestra viene ridimensionata.
onstorageSi attiva quando un'area di archiviazione web (localStorage/sessionStorage) viene aggiornata.
onunloadSi attiva quando la pagina viene scaricata (il documento viene rimosso).
<body onload="document.body.style.background = '#eef'">
  <p>This page changes its background colour once it has loaded.</p>
</body>

Attributi di Evento dei Moduli

Un evento che può verificarsi all'interno di un modulo è chiamato evento di modulo. Gli eventi di modulo si verificano quando un utente apre o chiude un modulo, si sposta tra moduli o lavora con i dati in un modulo.

Gli attributi di evento dei moduli possono essere applicati a tutti gli elementi HTML, ma vengono generalmente utilizzati con i controlli di modulo come <input>, <select> e <textarea>.

AttributoDescrizione
onblurSi attiva quando un elemento perde il focus (l'utente preme Tab o fa clic altrove su un controllo).
onchangeSi attiva quando il valore di un controllo è cambiato e il controllo perde il focus.
oncontextmenuSi attiva quando il menu contestuale (clic destro) viene aperto sull'elemento.
onfocusSi attiva quando un elemento acquisisce il focus.
oninputSi attiva immediatamente ogni volta che il valore di un controllo cambia.
oninvalidSi attiva quando un controllo inviato non supera la validazione dei vincoli.
onresetSi attiva quando un modulo viene reimpostato ai valori iniziali.
onsearchSi attiva quando l'utente effettua una ricerca in un campo <input type="search">.
onselectSi attiva quando l'utente seleziona del testo all'interno di un <input> o <textarea>.
onsubmitSi attiva quando un modulo viene inviato.
<form onsubmit="alert('Submitting…'); return false;">
  <input type="text" name="name"
         onfocus="this.style.background = '#ffd'"
         onblur="this.style.background = ''"
         placeholder="Your name">
  <button type="submit">Send</button>
</form>

Restituire false da onsubmit (o chiamare event.preventDefault() in JavaScript) impedisce che il modulo venga effettivamente inviato — utile durante i test.

Attributi di Evento della Tastiera

Gli attributi di evento della tastiera possono essere applicati a tutti gli elementi HTML.

AttributoDescrizione
onkeydownSi attiva quando un tasto viene premuto. Si ripete mentre il tasto è tenuto premuto.
onkeypressSi attiva quando viene premuto un tasto carattere. Deprecato — usare invece onkeydown.
onkeyupSi attiva quando un tasto premuto viene rilasciato.
<input type="text"
       onkeyup="document.getElementById('echo').textContent = this.value"
       placeholder="Type here">
<p>You typed: <span id="echo"></span></p>

Attributi di Evento del Mouse

Gli eventi del mouse si verificano quando il mouse interagisce con il documento HTML. Gli attributi possono essere applicati a tutti gli elementi HTML.

AttributoDescrizione
onclickSi attiva quando si fa clic sull'elemento.
ondblclickSi attiva quando si fa doppio clic sull'elemento.
ondragSi attiva ripetutamente mentre un elemento viene trascinato.
ondragendSi attiva quando termina un'operazione di trascinamento.
ondragenterSi attiva quando un elemento trascinato entra in un target di rilascio valido.
ondragleaveSi attiva quando un elemento trascinato lascia un target di rilascio valido.
ondragoverSi attiva ripetutamente mentre un elemento trascinato si trova sopra un target di rilascio valido.
ondragstartSi attiva quando l'utente inizia a trascinare un elemento.
ondropSi attiva quando un elemento trascinato viene rilasciato su un target di rilascio valido.
onmousedownSi attiva quando un pulsante del mouse viene premuto sull'elemento.
onmousemoveSi attiva ogni volta che il puntatore si sposta mentre è sull'elemento.
onmouseoutSi attiva quando il puntatore esce dall'elemento.
onmouseoverSi attiva quando il puntatore si sposta sull'elemento.
onmouseupSi attiva quando un pulsante del mouse viene rilasciato sull'elemento.
onmousewheelObsoleto — usare invece onwheel.
onscrollSi attiva quando la barra di scorrimento di un elemento viene scorsa.
onwheelSi attiva quando la rotella del mouse scorre verso l'alto o il basso sull'elemento.
<div onmousemove="this.textContent = event.offsetX + ', ' + event.offsetY"
     style="width:240px; height:120px; background:#eef; text-align:center; line-height:120px;">
  Move the mouse here
</div>

Attributi di Evento degli Appunti

AttributoDescrizione
oncopySi attiva quando il contenuto di un elemento viene copiato.
oncutSi attiva quando il contenuto di un elemento viene tagliato.
onpasteSi attiva quando del contenuto viene incollato in un elemento.

Attributi di Evento dei Media

Gli eventi media si verificano negli elementi media, come video, immagini e audio. Gli attributi possono essere applicati a qualsiasi elemento HTML, ma vengono generalmente utilizzati all'interno degli elementi audio, embed, img, object e video.

AttributoDescrizione
onabortSi attiva quando il caricamento del media viene interrotto.
oncanplaySi attiva quando il browser ha bufferizzato abbastanza da poter avviare la riproduzione.
oncanplaythroughSi attiva quando il browser stima di poter riprodurre fino alla fine senza fermarsi per bufferizzare.
oncuechangeSi attiva quando il cue attivo di una traccia di testo (ad es. sottotitoli o didascalie) cambia.
ondurationchangeSi attiva quando cambia la durata del media.
onemptiedSi attiva quando il media diventa vuoto (ad es. la connessione viene persa).
onendedSi attiva quando la riproduzione raggiunge la fine del media.
onerrorSi attiva quando si verifica un errore durante il caricamento del media.
onloadeddataSi attiva quando il frame corrente dei dati media è stato caricato.
onloadedmetadataSi attiva quando i metadati (durata, dimensioni, …) sono stati caricati.
onloadstartSi attiva quando il browser inizia a caricare il media.
onpauseSi attiva quando la riproduzione viene messa in pausa.
onplaySi attiva quando la riproduzione inizia o riprende.
onplayingSi attiva quando la riproduzione è effettivamente in corso (ad esempio dopo il buffering).
onprogressSi attiva periodicamente mentre il browser sta caricando il media.
onratechangeSi attiva quando cambia la velocità di riproduzione (ad es. avanzamento rapido).
onseekedSi attiva quando termina un'operazione di ricerca.
onseekingSi attiva quando inizia un'operazione di ricerca.
onstalledSi attiva quando il browser tenta, ma non riesce, a recuperare i dati media.
onsuspendSi attiva quando il caricamento del media viene intenzionalmente messo in pausa.
ontimeupdateSi attiva quando la posizione di riproduzione cambia durante la riproduzione.
onvolumechangeSi attiva quando cambia il volume (inclusa la disattivazione dell'audio).
onwaitingSi attiva quando la riproduzione si interrompe perché il frame successivo non è ancora bufferizzato.

Altri Eventi

AttributoDescrizione
ontoggleSi attiva quando l'utente apre o chiude un elemento <details>.
Informazione

Alcuni attributi che si possono trovare in riferimenti più vecchi — onredo, onundo e onshow — non hanno mai fatto parte dello standard HTML o non sono supportati dai browser, quindi sono stati omessi qui.

Esercizio

Pratica
Cosa sono gli attributi di evento globali in HTML?
Cosa sono gli attributi di evento globali in HTML?
Was this page helpful?