2010-10-19 22 views
4

J'utilise firebug et je fais beaucoup d'appels console.log, .info, .dir, etc. Quand l'application fonctionne sur une machine avec le firebug éteint, cela peut causer des erreurs. Quelle est la meilleure technique pour éviter cela? Cela semble fonctionner:meilleur moyen en javascript pour faire des appels console.log pas de problèmes quand il n'y a pas de console?

// global scope 
if (typeof(console) == 'undefined') { 
    console = { 
     info : function() {}, 
     dir : function() {}, 
     error : function() {}, 
     log : function() {} 
    }; 
} 

mais je n'aime pas l'idée de maintenir manuellement une liste de fonctions de la console. D'autres idées?

(Nous avons aussi jQuery sur le projet si cela aide.)

+1

Personnellement, je pense que la solution que vous avez ci-dessus est la meilleure. Le fait est que, si vous ne voulez pas que des objets ou des fonctions inconnus provoquent des erreurs, vous devez soit les supprimer, soit les définir de manière non invasive comme indiqué ci-dessus. – Matt

+0

Utilisez-vous un compilateur comme Google ou Yahoo pour compresser et vérifier votre JavaScript? J'ai cherché quelque chose qui supprime toutes les commandes 'console' à la compilation. – rxgx

Répondre

3

Personnellement, je viens d'utiliser $.noop pour le raccourcir comme ceci:

if(!window.console) 
    window.console = { log: $.noop, group: $.noop, groupEnd: $.noop }; 

Mais quelles que soient les fonctions que vous utilisez, ajoutez Je les connais.

+0

Nice, je ne l'ai pas maintenant $ .noop – Matt

+0

@Marcel - Ce n'est pas, vous référencez la * même * fonction vide, ne pas en créer un nouveau à chaque fois. –

+0

Bien sûr, vous avez raison. –