W3docs

Atributos de Evento Globais

Atributos de evento globais permitem que eventos disparem ações no navegador, como executar JavaScript quando o usuário clica em um elemento.

Um evento ocorre quando o navegador reage a uma ação específica — um usuário clicando com o mouse, pressionando uma tecla, reproduzindo um vídeo, enviando um formulário, redimensionando a janela, entre outros. Para responder a um evento, você anexa um handler: um trecho de script (geralmente JavaScript) que é executado quando o evento é disparado.

O HTML permite anexar um handler diretamente na marcação através de um atributo de evento. Todos os atributos desta página começam com on seguido do nome do evento (onclick, onkeydown, onsubmit, …). Todos foram adicionados no HTML5 e aceitam código JavaScript como valor:

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

Esses atributos de evento são globais — a maioria pode ser colocada em qualquer elemento — mas cada um só faz sentido no contexto correto (atributos de formulário em controles de formulário, atributos de mídia em <audio>/<video>, e assim por diante).

Aviso

Atributos on* inline são desaconselhados no código moderno. Eles misturam comportamento à sua marcação, não permitem anexar facilmente mais de um handler, e são bloqueados por uma Política de Segurança de Conteúdo restrita. Prefira addEventListener em um script separado, o que mantém HTML e JavaScript separados e permite que vários handlers escutem o mesmo evento:

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

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

As tabelas abaixo listam os atributos de evento por categoria. Para um tratamento mais completo de como os eventos funcionam no navegador, consulte Eventos JavaScript e os relacionados Atributos Globais HTML.

Atributos de Eventos de Janela

Os eventos de janela são disparados para o objeto window. Geralmente são colocados na tag <body>, onde o navegador os mapeia para window.

AtributoDescrição
onafterprintDisparado após o documento ter sido impresso.
onbeforeprintDisparado antes de o documento ser impresso.
onbeforeunloadDisparado antes de o documento ser descarregado (por exemplo, quando o usuário está prestes a sair da página).
onblurDisparado quando a janela perde o foco (o usuário muda para outra aba ou aplicativo).
onerrorDisparado quando ocorre um erro ao carregar o documento ou um recurso.
onhashchangeDisparado quando o fragmento (a parte da URL após #) muda.
onloadDisparado quando toda a página — imagens, CSS e scripts — terminou de carregar.
onmessageDisparado quando a janela recebe uma mensagem (por exemplo, via postMessage).
onofflineDisparado quando o navegador perde a conexão de rede.
ononlineDisparado quando o navegador recupera a conexão de rede.
onpagehideDisparado quando o usuário navega para fora da página.
onpageshowDisparado quando o usuário navega para a página.
onpopstateDisparado quando a entrada ativa do histórico muda.
onresizeDisparado quando a janela é redimensionada.
onstorageDisparado quando uma área de armazenamento web (localStorage/sessionStorage) é atualizada.
onunloadDisparado quando a página é descarregada (o documento está sendo removido).
<body onload="document.body.style.background = '#eef'">
  <p>This page changes its background colour once it has loaded.</p>
</body>

Atributos de Eventos de Formulário

Um evento que pode ocorrer dentro de um formulário é chamado de evento de formulário. Os eventos de formulário acontecem quando um usuário abre ou fecha um formulário, navega entre formulários ou trabalha com dados em um formulário.

Os atributos de eventos de formulário podem ser aplicados a todos os elementos HTML, mas geralmente são usados com controles de formulário como <input>, <select> e <textarea>.

AtributoDescrição
onblurDisparado quando um elemento perde o foco (o usuário usa Tab ou clica fora de um controle).
onchangeDisparado quando o valor de um controle muda e o controle perde o foco.
oncontextmenuDisparado quando o menu de contexto (clique com o botão direito) é aberto no elemento.
onfocusDisparado quando um elemento ganha foco.
oninputDisparado imediatamente cada vez que o valor de um controle muda.
oninvalidDisparado quando um controle enviado falha na validação de restrição.
onresetDisparado quando um formulário é redefinido para seus valores iniciais.
onsearchDisparado quando o usuário pesquisa em um campo <input type="search">.
onselectDisparado quando o usuário seleciona texto dentro de um <input> ou <textarea>.
onsubmitDisparado quando um formulário é enviado.
<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>

Retornar false do onsubmit (ou chamar event.preventDefault() em JavaScript) impede que o formulário seja realmente enviado — útil durante os testes.

Atributos de Eventos de Teclado

Os atributos de eventos de teclado podem ser aplicados a todos os elementos HTML.

AtributoDescrição
onkeydownDisparado quando uma tecla é pressionada. Repete enquanto a tecla é mantida pressionada.
onkeypressDisparado quando uma tecla de caractere é pressionada. Descontinuado — use onkeydown em vez disso.
onkeyupDisparado quando uma tecla pressionada é solta.
<input type="text"
       onkeyup="document.getElementById('echo').textContent = this.value"
       placeholder="Type here">
<p>You typed: <span id="echo"></span></p>

Atributos de Eventos de Mouse

Os eventos de mouse ocorrem quando o mouse interage com o documento HTML. Os atributos podem ser aplicados a todos os elementos HTML.

AtributoDescrição
onclickDisparado quando o elemento é clicado.
ondblclickDisparado quando o elemento recebe um duplo clique.
ondragDisparado repetidamente enquanto um elemento está sendo arrastado.
ondragendDisparado quando uma operação de arrastar termina.
ondragenterDisparado quando um elemento arrastado entra em um alvo de soltar válido.
ondragleaveDisparado quando um elemento arrastado sai de um alvo de soltar válido.
ondragoverDisparado repetidamente enquanto um elemento arrastado está sobre um alvo de soltar válido.
ondragstartDisparado quando o usuário começa a arrastar um elemento.
ondropDisparado quando um elemento arrastado é solto em um alvo de soltar válido.
onmousedownDisparado quando um botão do mouse é pressionado sobre o elemento.
onmousemoveDisparado sempre que o ponteiro se move enquanto está sobre o elemento.
onmouseoutDisparado quando o ponteiro sai do elemento.
onmouseoverDisparado quando o ponteiro move sobre o elemento.
onmouseupDisparado quando um botão do mouse é liberado sobre o elemento.
onmousewheelObsoleto — use onwheel em vez disso.
onscrollDisparado quando a barra de rolagem de um elemento é rolada.
onwheelDisparado quando a roda do mouse gira para cima ou para baixo sobre o 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>

Atributos de Eventos de Área de Transferência

AtributoDescrição
oncopyDisparado quando o conteúdo de um elemento é copiado.
oncutDisparado quando o conteúdo de um elemento é cortado.
onpasteDisparado quando um conteúdo é colado em um elemento.

Atributos de Eventos de Mídia

Os eventos de mídia ocorrem em elementos de mídia, como vídeo, imagem e áudio. Os atributos podem ser aplicados a qualquer elemento HTML, mas geralmente são usados dentro de elementos audio, embed, img, object e video.

AtributoDescrição
onabortDisparado quando o carregamento da mídia é interrompido.
oncanplayDisparado quando o navegador armazenou buffer suficiente para começar a reproduzir.
oncanplaythroughDisparado quando o navegador estima que pode reproduzir até o final sem parar para armazenar em buffer.
oncuechangeDisparado quando a legenda ativa de uma faixa de texto (por exemplo, legendas ou closed captions) muda.
ondurationchangeDisparado quando a duração da mídia muda.
onemptiedDisparado quando a mídia fica vazia (por exemplo, a conexão é perdida).
onendedDisparado quando a reprodução chega ao final da mídia.
onerrorDisparado quando ocorre um erro ao carregar a mídia.
onloadeddataDisparado quando o frame atual dos dados de mídia foi carregado.
onloadedmetadataDisparado quando os metadados (duração, dimensões, …) foram carregados.
onloadstartDisparado quando o navegador começa a carregar a mídia.
onpauseDisparado quando a reprodução é pausada.
onplayDisparado quando a reprodução começa ou é retomada.
onplayingDisparado quando a reprodução está realmente em execução (após o buffer, por exemplo).
onprogressDisparado periodicamente enquanto o navegador carrega a mídia.
onratechangeDisparado quando a taxa de reprodução muda (por exemplo, avanço rápido).
onseekedDisparado quando uma operação de busca termina.
onseekingDisparado quando uma operação de busca começa.
onstalledDisparado quando o navegador está tentando, mas não conseguindo, buscar dados de mídia.
onsuspendDisparado quando o carregamento da mídia é intencionalmente pausado.
ontimeupdateDisparado conforme a posição de reprodução muda durante a reprodução.
onvolumechangeDisparado quando o volume muda (incluindo silenciamento).
onwaitingDisparado quando a reprodução para porque o próximo frame ainda não foi armazenado em buffer.

Outros Eventos

AtributoDescrição
ontoggleDisparado quando o usuário abre ou fecha um elemento <details>.
Informação

Alguns atributos que você pode encontrar em referências mais antigas — onredo, onundo e onshow — nunca fizeram parte do HTML padrão ou não são suportados pelos navegadores, por isso foram omitidos aqui.

Prática

Prática
O que são atributos de evento globais em HTML?
O que são atributos de evento globais em HTML?
Was this page helpful?