Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

GlobalEventHandlers.onerror

Un gestionnaire d'événement pour l'événement error. L'événement error est déclenché vers diverses cibles et pour différents types d'erreurs:

  • Lorsqu'une erreur de runtime JavaScript arrive (erreurs de syntaxe comprises), un évènement error utilisant l'interface ErrorEvent est déclenché à window et window.onerror() est appelé.
  • Lorsque le chargement d'une ressource (telle que <img> ou <script>) échoue, un événement error utilisant l'interface Event est déclenché sur l'élément qui a provoqué le chargement, et l'intercepteur onerror() de l'élément est invoqué.

Le dernier évènement d'erreur n'est pas propagé en amont (bubble up) à l'élément window, mais (en tout cas dans Firefox) peut-être intercepté par une capture unique de window.addEventListener.

Syntaxe

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

window.onerror

window.onerror = funcRef;

funcRef est une référence à une fonction. Si la fonction retourne true, ceci empêche la propagation de l'intercepteur d'événement par défaut. 

Paramètres de la fonction :

  • Le message d'erreur (string)
  • L'URL du script où l'erreur a été rencontrée (string)
  • Le numéro de ligne d'où l'erreur a été rencontrée (number).
  • Le numéro de colonne dans la ligne d'où l'erreur a été rencontrée (number)
  • L'objet Error (object)

element.onerror

element.onerror accepte une fonction avec un argument unique de type Event.

Notes

Si une erreur de syntaxe(?) est rencontrée dans un script chargé à partir d'une origine différente, les détails de l'erreur de syntaxe ne sont pas reporté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 utilisant l'attribut crossorigin de <script> et dont le serveur retourne l'entête de réponse CORS HTTP appropriée.

En utilisant le balisage html (<body onerror="alert('an error occurred')>...), l'argument n'est pas nommé. Il peut être référencé par arguments[0] comme arguments[2].

Spécifications

Spécification Statuts Commentaires
WHATWG HTML Living Standard
La définition de 'onerror' dans cette spécification.
Standard évolutif  

Compatibilité des navigateurs

Avant Firefox 14, si le chargement d'un <script> échouait, window.onerror était invoqué avec le message "Error loading script". Ce bug a été corrigé par ce correctif bug 737087. A présent, scriptElement.onerror est invoqué dans ce genre de cas.

Depuis Firefox 31 il est possible d'accéder à la trace détaillée (stack trace) de l'erreur de script à partir de window.onerror via l'object qui fournit l'erreur : Error (bug 355430.)

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : Hell_Carlito, FGM, miam
 Dernière mise à jour par : Hell_Carlito,