--- title: GlobalEventHandlers.onerror slug: Web/API/GlobalEventHandlers/onerror tags: - API - HTML DOM - Propriedade - Referencia translation_of: Web/API/GlobalEventHandlers/onerror ---
{{ApiRef("HTML DOM")}}

Um event handler para o evento error . Eventos de erro são disparados contra diversos tipos de alvos, para diferentes tipos de erros: 

Instalando um manipulador de eventos de erro global é útil para compilação automatizada de relatórios de erro. 

Sintaxe

Por questões históricas, diferentes argumentos são passados para os manipuladores window.onerror e element.onerror;

window.onerror

window.onerror = function(message, source, lineno, colno, error) { ... }

Parâmetros da função:

 

Quando a função retorna verdadeira, ela evita o disparo do manipulador de evento padrão 

element.onerror

element.onerror = function(event) { ... }

element.onerror aceita uma função dom um único argumento do tipo {{domxref("Event")}}.

Notas

Quando um erro de sintaxe(?) ocorre em um script, carregado de uma origem diferente, os detalhes do erro de sintaxe não são reportados para previnir vazamento de informações (veja {{bug("363897")}}). Ao invés de exibir simplesmente "Script error." (erro de script), este comportamento pode ser sobrescrito em alguns navegadores usando o atributo  {{htmlattrxref("crossorigin","script")}} no {{HTMLElement("script")}} e tendo o servidor enviado os cabeçalhos HTTP CORS apropriados.  Uma solução alternativa é isolar o "Script error." e manipulá-lo sabendo que o detalhe do erro é visível somente no console do navegador e não acessível através do JavaScript.

window.onerror = function (msg, url, lineNo, columnNo, error) {
    var string = msg.toLowerCase();
    var substring = "script error";
    if (string.indexOf(substring) > -1){
        alert('Script Error: See Browser Console for Detail');
    } else {
        alert(msg, url, lineNo, columnNo, error);
    }
  return false;
};

Quando usamos a marcação HTML inline (<body onerror="alert('an error occurred')">), a especificação HTML requer argumentos passados para o onerror identificados como event, source, lineno, colno, error. Os navegadors que não implementam este requerimento, podem ainda serem obtidos por arguments[0] até arguments[2].

Especificações

Especificação Status Comentário
{{SpecName('HTML WHATWG','webappapis.html#handler-onerror','onerror')}} {{Spec2('HTML WHATWG')}}  

Compatibilidade com navegadores

Antes do Firefox 14, quando um {{HTMLElement("script")}} falhava na inicialização, window.onerror era invocada com a mensagem "Error loading script"(erro de leitura de script). Isto foi corrigido no {{bug("737087")}}, agora scriptElement.onerror é chamado ao invés disto.

Desde o Firefox 31, os últimos 2 argumentos (colno and error) foram adicionados, o que significa que você tem acesso a pilha de rastreamento de um erro de script através do window.onerror por intermédio do Error object ({{bug("355430")}}.)

Veja também