Solution de repli pour les navigateurs sans Firebug

Si vous faites du développement de sites internet vous connaissez très certainement Firebug (sinon ne tardez pas à le découvrir, ça vous changera la vie et c'est libre !). Un des « défauts » de Firebug (et c'est beaucoup dire), est qu'il facile de noyer ses scripts Javascript de console.log et de se retrouver avec une page qui ne fonctionne pas sous Internet Explorer, ou sous tout Firefox sans Firebug, et accessoirement dans plein d'autres navigateurs dont personne n'a jamais entendu parler ;)

Solution de repli pour les navigateurs sans Firebug

Pour éviter ce genre de frustrations (et accessoirement éviter un coup de fil d'un client mécontent qui ne se contentera pas de votre pauvre excuse « mais si, chez moi ça marche très bien ! ») vous pouvez définir vous même les fonctions console.log et autres quand elles n'existent pas :

if ( console === undefined ) console.log() = function() {}

Ou plus complet et plus élégant, comme trouvé sur ce blog :

// code yanked from the Yahoo media player. Thanks, Yahoo.
if (! ("console" in window) || !("firebug" in console)) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group"
                 , "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
    window.console = {};
    for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {};
}

Je crois que vous pouvez même enlever la première ligne et ça marche encore :-D

Magique, non ?
Pratique ? oui !

Vus : 396
Publié par djibux : 113