I was hoping to add this as a comment to Marcus Westen's answer, but I can't find the link - maybe I need more reputation?
Anyway, thanks, I found this piece of code useful for quick debugging in IE. I did some quick tricks to fix the problem that stopped it for me, as well as automatically scroll down and use fixed positioning so that it appears in the viewport. Here is my version in case anyone finds this useful:
myLog = function() { var _div = null; this.toJson = function(obj) { if (typeof window.uneval == 'function') { return uneval(obj); } if (typeof obj == 'object') { if (!obj) { return 'null'; } var list = []; if (obj instanceof Array) { for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); } return '[' + list.join(',') + ']'; } else { for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); } return '{' + list.join(',') + '}'; } } else if (typeof obj == 'string') { return '"' + obj.replace(/(["'])/g, '\\$1') + '"'; } else { return new String(obj); } }; this.createDiv = function() { myLog._div = document.body.appendChild(document.createElement('div')); var props = { position:'fixed', top:'10px', right:'10px', background:'#333', border:'5px solid #333', color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new', fontSize: '11px', whiteSpace: 'nowrap' } for (var key in props) { myLog._div.style[key] = props[key]; } }; if (!myLog._div) { this.createDiv(); } var logEntry = document.createElement('span'); for (var i=0; i < arguments.length; i++) { logEntry.innerHTML += this.toJson(arguments[i]) + '<br />'; } logEntry.innerHTML += '<br />'; myLog._div.appendChild(logEntry);
poshaughnessy Sep 27 '10 at 10:50 2010-09-27 10:50
source share