Wer viele console.log() Einträge in seinem JavaScript-Code hat, sollte diese Einträge beim Live-Schalten der Webseite unbedingt entfernen. Um auf Nummer sicher zu gehen, dass beim Endanwender keine Log-Einträge zu sehen sind, empfiehlt es sich, die console.log()-Funktion zu überschreiben und somit unbrauchbar zu machen:
var console = {};
console.log = function(){}; |
var console = {};
console.log = function(){};
Ein Problem ist, dass Internet Explorer 8 und älter nicht mit console.log umgehen können. Stattdessen erscheint eine Fehlermeldung: 'console' is undefined
. Daher empfiehlt es sich immer, auf console.log in der Produktivumgebung zu verzichten.
Man kann über einen Conditional Comment aber auch gezielt für IE8 und älter die Konsolenausgabe überschreiben (um die Fehleranzeige zu vermeiden):
<body>
<!--[if lte IE 8]>
<script type="text/javascript">
var console = {};
console.log = function(){};
</script>
<![endif]-->
<script type="text/javascript">
console.log('Hello World.'); // will not be shown in IE8 and lower
</script>
</body> |
<body>
<!--[if lte IE 8]>
<script type="text/javascript">
var console = {};
console.log = function(){};
</script>
<![endif]-->
<script type="text/javascript">
console.log('Hello World.'); // will not be shown in IE8 and lower
</script>
</body>
Hinweis zu Conditional Comments:
gte
steht für „greater than or equal“
gt
steht für „greater than“
lte
steht für „less than or equal“
lt
steht für „less than“
Conditional Comments sollten außerdem möglichst früh (zum Beispiel im head-Bereich) einer HTML-Seite eingesetzt werden.
Mehr Infos siehe: Detecting Windows Internet Explorer More Effectively
Noch allgemeingültiger (und nicht ausschließlich auf den IE bezogen) ist folgender Patch:
<script type="text/javascript">
if(typeof(console) == 'undefined'){
var console = {};
console.log = function(){};
}
console.log('Hello World.');
</script> |
<script type="text/javascript">
if(typeof(console) == 'undefined'){
var console = {};
console.log = function(){};
}
console.log('Hello World.');
</script>
Wer auf das Logging nicht verzichten will, der kann für ältere Browser (z.B. Internet Explorer 5 und Firefox 1.0) die Bibliothek log4javascript einbinden, um console.log
verfügbar zu machen:
<script type="text/javascript" src="./js/log4javascript_lite.js"></script>
<script type="text/javascript">
if (!window.console) this.console = { log: function(){} };
console.log('Hello World'); // will not be shown in IE5 and greater
</script> |
<script type="text/javascript" src="./js/log4javascript_lite.js"></script>
<script type="text/javascript">
if (!window.console) this.console = { log: function(){} };
console.log('Hello World'); // will not be shown in IE5 and greater
</script>