Jozza.net

Dump Object using JavaScript

// usage: dump (object object[, int maxLevel])
// params
//  object: any object to get info on
//  maxLevel: number of levels to expand (default 0)
function dump(obj, maxLevel, indent) {
	if (indent == null) indent = "";
	if (maxLevel == null) maxLevel = 0;
	if (indent.length > maxLevel) return "###";
	var strMessage = "\r\n";
	for (var p in obj) {
		strMessage += indent + p + ": ";
		try {
			if (obj[p] && typeof(obj[p]) == "object") {
				strMessage += dump(obj[p], indent + "\t");
			} else {
				strMessage += obj[p];
			}
		} catch (e) {
			strMessage += e.message;
		}
		strMessage += "\r\n";
	}
	return strMessage;
}
// to alert dump
alert(dump(window));
// with an extra level of info
alert(dump(window,1));

// to output in new window:
var win = window.open('about:blank','debug');
alert('wait please');
win.document.body.innerHTML = "<pre>" + dump(window,1) + "</pre>";