2010-04-18 2 views
2

J'utilise le window.onerror pour alerter les erreurs javascript pour le débogage.firefox window.onerror événement problème - alertes "Erreur de script!" seulement

window.onerror = function(msg, url, line) { 
    alert(msg + '\nLine: ' + line); 
}; 

Lorsqu'une erreur est déclenchée, elle peut alerter ce message d'erreur réel dans IE. Mais dans Firefox, il alerte juste "Erreur de script!", Mais je peux toujours voir le message d'erreur réel dans la console d'erreur de Firefox.

Je me rappelais il y a plusieurs mois quand je travaillais sur un autre projet, firefox ne fonctionnait pas comme ça. Mais je ne peux pas obtenir le code de ce projet actuellement. Je me demande donc quels sont les problèmes possibles avec cela?

Répondre

0

Je connais la réponse maintenant. Après avoir téléchargé le fichier sur un serveur Web (localhost réellement), visité http://localhost/path/to/the/file.html, l'événement window.onerror fonctionne comme prévu (comme dans IE, en alertant le message d'erreur réel au lieu de simplement "Erreur de script"). Mais cela ne fonctionne pas lorsque vous visitez le fichier localement via le fichier: /// D: /path/to/the/file.html

Vous n'arrivez pas à comprendre pourquoi?

+0

IE n'exécute pas JavaScript sur les fichiers du système de fichiers par défaut. Activez Options Internet-> Avancé -> 'Exécuter le contenu actif depuis le Poste de travail' pour tester sur le système de fichiers, ou ajoutez la "Marque du Web". http://msdn.microsoft.com/en-us/library/ms537628%28VS.85%29.aspx – bobince

+0

oui, probablement il y a quelque chose à faire avec le paramètre de sécurité. Mais IE toujours alerter le message d'erreur réel, peu importe "Exécuter le contenu actif de mon ordinateur" est activé ou désactivé. Mais firefox alerte juste "erreur sxript" au lieu du message d'erreur réel pour les fichiers sur le système de fichiers local. – powerboy

+0

Fonctionne pour moi. Ayons un test complet. – bobince

1
window.onerror(function(msg, url, line) { 

Vous voulez dire:

window.onerror= function(msg, url, line) { 
+0

désolé c'était une faute de frappe. – powerboy

0

Vous devez vous assurer que le domaine dans lequel votre script est utilisé est le même que celui de votre page. Vous devriez être en mesure d'obtenir un nom de fichier et un numéro de ligne appropriés si les deux sont identiques.

Vérifié sur IE8, FF 3.6 et Chrome 10 bêta secondes auparavant.