jQuery.fn.inspect = function(output) { jQuery.inspect($(this), output); return this; } jQuery.inspect = function(obj, output) { output = (output ? output : 'alert') var text = ""; var _build = null; var _dump = null; switch (output) { case 'console': _build = jQuery.inspect._buildText; _dump = jQuery.inspect._console; break; case 'window': _build = jQuery.inspect._buildHTML; _dump = jQuery.inspect._window; break; default: _build = jQuery.inspect._buildText; _dump = jQuery.inspect._alert; } switch (typeof obj) { case 'string': text = "String: " + obj; break; case 'number': text = "Number: " + obj; break; case 'boolean': text = "Boolean: " + obj; break; case 'undefined': alert('Object is undefined'); return true; default: text = jQuery.inspect._parseObject(obj, _build); } _dump(text); } jQuery.inspect._parseObject = function(obj, _dumpTo) { var text = "" for (field in obj) { try { text += _dumpTo(field, obj[field]); } catch (err) { // do nothing } } return text; } jQuery.inspect._buildText = function(key, value) { return key + ":" + value + "\n"; } jQuery.inspect._buildHTML = function(key, value) { return "" + key + "" + value + "\n"; } jQuery.inspect._console = function(text) { console.log(text); } jQuery.inspect._alert = function(text) { alert(text); } jQuery.inspect._window = function(text) { text = "" + jQuery.inspect._windowSettings.styles + "" + text + "
"; dump_window = window.open('', '', jQuery.inspect._windowSettings.config); dump_window.document.write(text); dump_window.document.close(); dump_window.focus(); } jQuery.inspect._windowSettings = jQuery.extend({ width: 800, height: 600 }); jQuery.inspect._windowSettings.styles = "\ "; jQuery.inspect._windowSettings.config = "width=" + jQuery.inspect._windowSettings.width + ",height=" + jQuery.inspect._windowSettings.height + ",scrollbars=yes,location=no,menubar=no,toolbar=no";