Beim Refactoring unserer Javascripte hat sich herausgestellt, das mit der neuen Struktur eine Consolen-Ausgabe mit Meta-Informationen über wann wo welches Script geladen wird unerlässlich ist. Benutzt man hierfür das Mozilla eigene console-Objekt, dann stößt man sehr schnell auf ein Problem:
Und zwar kennen andere Browser als der Firefox das console-Objekt nicht. Dadurch wird z.B. im Internet-Explorer beim ersten Aufruf von console.log() ein Javascript-Fehler geworfen und wie wir alle wissen brechen damit alle nachfolgenden Scripte ab.
Hier habe ich ein kleines Script gefunden, was überprüft, ob console definiert ist und wenn nicht, dann wird stattdessen ein Javascript-alert mit der logging-Ausgabe gemacht. Weil dies auf die Dauer aber auch nerven kann, kann man den alert über eine Variable einfach wieder abschalten.
Zudem kann man auch gleich das ganze logging über eine Variable abschalten, was ganz praktisch ist, wenn man auf verschiedenen Systemen arbeitet und auf der Live-Umgebung das Logging lieber ausgeschaltet haben möchte.
Ich habs jetzt mal eingebaut und es scheint ganz gut zu funktionieren. Das Einzige, wo ich noch etwas unsicher bin ist die Performance unter abgeschalteten Logging auf dem Live-System, da ich mir nicht sicher bin, ob es nicht schlauer wäre, die console.log-Aufrufe beim Build/Deploy einfach rauszufiltern, denn damit würde man sich den vielfachen Aufruf des Wrappers sparen. Meinungen welcome…
Hier nochmal der Link zum Script: http://fragged.org/creating-a-wrapper-for-the-firebug-consolelog-function-for-ie-and-other-browsers_218.html