--- title: GlobalEventHandlers.onerror slug: Web/API/GlobalEventHandlers/onerror tags: - API - HTML DOM - Propriété - Reference translation_of: Web/API/GlobalEventHandlers/onerror ---
{{ApiRef("HTML DOM")}}

Un gestionnaire d'événement pour l'événement error. Des événements d'erreur sont déclenchés vers diverses cibles et pour différents types d'erreurs:

Syntaxe

Pour des raisons historiques, des arguments différents sont passés aux gestionnaires window.onerror et element.onerror.

window.onerror

window.onerror = function(messageOrEvent, source, noligne, nocolonne, erreur) { ... }

Paramètres de la fonction :

element.onerror (et window.addEventListener('error'))

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

element.onerror accepte une fonction avec un argument unique de type {{domxref("Event")}}.

Notes

Quand une erreur de syntaxe(?) se produit dans un script chargé à partir d'une origine différente, les détails de l'erreur de syntaxe ne sont pas rapportés, afin de prévenir la fuite d'information (voir {{bug("363897")}}). A la place, l'erreur est simplement reportée en tant que "Script error". Ce comportement peut être surchargé par certains navigateurs en utilisant l'attribut {{htmlattrxref("crossorigin","script")}} de {{HTMLElement("script")}} et en faisant en sorte que le serveur envoie les entêtes de réponse CORS HTTP appropriés. Un contournement consiste à isoler "Script error" et à la gérer en sachant que les détails de l'erreur ne sont visibles que la console du navigateur et non accessibles en JavaScript.

window.onerror = function (msg, url, noLigne, noColonne, erreur) {
    var chaine = msg.toLowerCase();
    var souschaine = "script error";
    if (chaine.indexOf(souschaine) > -1){
        alert('Script Error : voir la Console du Navigateur pour les Détails');
    } else {
        var message = [
            'Message : ' + msg,
            'URL : ' + url,
            'Ligne : ' + noLigne,
            'Colonne : ' + noColonne,
            'Objet Error : ' + JSON.stringify(erreur)
        ].join(' - ');

        alert(message);
    }

    return false;
};

Lors de l'utilisation du balisage html intégré (<body onerror="alert('une erreur est survenue')>...), la spécification HTML requiert que les arguments passés à onerror soient nommés eventsourcelinenocolnoerror. Dans les navigteurs qui n'ont pas implémenté cette obligation, ils peuvent toujours être obtenus via arguments[0] à arguments[2].

Spécifications

Spécification Statut Commentaire
{{SpecName('HTML WHATWG','webappapis.html#handler-onerror','onerror')}} {{Spec2('HTML WHATWG')}}  

Compatibilité des navigateurs

{{Compat("api.GlobalEventHandlers.onerror")}}

Voir aussi