J'ai un script qui détecte les erreurs Javascript sur mon site web et les envoie à mon backend pour les rapports. Il rapporte la première erreur rencontrée, la supposée numéro de ligne, et le temps.
MODIFIER pour inclure doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
...
<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
window.onerror = function(msg, url, ln) {
//transform errors
if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
msg = 'Error loading script';
}else{
msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
}
}
msg = msg.toString();
//ignore errors
if(msg.indexOf("Location.toString") > -1){
return;
}
if(msg.indexOf("Error loading script") > -1){
return;
}
//report errors
window.onerror = function(){};
(new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
};
})(window);
//]]>
</script>
En raison de ce script, j'ai pleinement conscience de toutes les erreurs javascript qui se passe sur mon site. L'un de plus grands délinquants "Erreur de Script." sur la ligne 0. dans google Chrome 10+, Firefox 3+. Cette erreur n'existe pas (ou peut être appelé quelque chose d'autre?) dans Internet Explorer.
Correction (5/23/2013): Cette "Erreur de Script, la Ligne 0" erreur apparaît maintenant dans IE7 et peut-être d'autres versions de IE. Éventuellement, un résultat d'une récente IE correctif de sécurité que ce comportement n'existaient pas auparavant.
Quelqu'un aurait-il une idée de ce que cette erreur signifie ou ce qui les provoque? Il arrive à environ 0,25% de l'ensemble de mon pageloads, et représente la moitié du nombre des erreurs.