I\'m trying to use console.log to put some logging into the javascript side of my program. I noticed, though, that unless the dev console is open in IE, JS basically stops worki
I use this snippet myself
if (! ('console' in window) ) {
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() {};
}else {
/*if it exists but doesn't contain all the same methods....silly ie*/
var names = ['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd'];
for (var i = 0; i < names.length; ++i) if(!window.console[names[i]])window.console[names[i]] = function() {};
};
I solved it by using the "fake console" described above, to prevent the script execution breaking. It is included only for InternetExplorer < 10. I include this in my html head:
<!--[if lte IE 10]>
<script> if (typeof console === "undefined") console = { log: function() { } }; </script>
<![endif]-->
IE has its own console, and you wont want to override console if you're using firebug lite. Just make sure that console exists when log gets called:
if (window.console) console.log('foo bar baz', fizz, buzz);
Better yet, use &&
to shortcut:
window.console && console.log('foo bar baz', fizz, buzz);
function log(log){
try{
console.log( log);
}catch(err){}
}
I'm using fauxconsole; I modified the css a bit so that it looks nicer but works very well.
You can create a fake console
:
if (typeof console === "undefined")
console = { log: function() { } };