我知道firebug中的console.log,这个东西叫dbug(但根本不是我想要的)。我正在寻找的东西将给我一个漂亮的打印嵌套视图到一个看起来像javascript的对象:
(来源:ospinto.com)
I'm also aware of this question,我正在寻找更具表格的内容。
答案 0 :(得分:5)
尝试:
代码:
var prettyPrint = (function(){
var htmlObj = function(obj){
if (Object.prototype.toString.call(obj) === '[object RegExp]') {
return obj.toSource ? obj.toSource() : '/' + obj.source + '/';
}
if (typeof obj === 'object') {
return prettyPrint(obj);
}
if (typeof obj === 'function') {
return document.createTextNode('function(){...}');
}
return obj.toString();
},
row = function(cells, type){
type = type || 'td';
var r = document.createElement('tr');
for (var i = 0, l = cells.length; i < l; i++) {
var td = document.createElement(type);
td.appendChild(typeof cells[i] === 'string' ? document.createTextNode(cells[i]) : cells[i]);
r.appendChild(td);
}
return r;
},
heading = function() {
var thead = document.createElement('thead');
thead.appendChild(row(['Name','Value'], 'th'));
return thead;
};
return function(obj) {
var tbl = document.createElement('table'),
tbody = document.createElement('tbody');
for (var i in obj) {
var objCellContent = obj[i] === obj ? document.createTextNode('CIRCULAR REFERENCE') : htmlObj(obj[i]);
tbody.appendChild( row([document.createTextNode(i), objCellContent]) );
}
tbl.appendChild(heading());
tbl.appendChild(tbody);
return tbl;
};
})();
答案 1 :(得分:3)
我今天刚刚看到this,也许这就是你要找的东西?
答案 2 :(得分:2)
我没有碰到这样的调试器,虽然看起来这种特殊的风格似乎不太难以自己编写。只是一个基本的递归函数传入当前对象和一个表格单元格开始编写,然后只是随时构建。
对于上面的循环引用注释,可以通过保留已经处理的对象数组来轻松避免这种情况。在处理对象之前,请检查它是否已在列表中。如果是这样,则在输出的值字段中表示类似“循环引用”...但是您想要在层次结构中表示对象。
prettyprint(object, processedObjects)
{
if (processedObjects.contains(object))
return 'circular refernece';
processedObjects.push(object);
create newTable;
for (var in object)
{
row = newTable.addRow();
row.cell1.value = var;
if (typeof object[var] is object)
row.cell2.value = prettyprint(object[var], processedObjects);
else if (typeof object[var] is function)
row.cell2.value = '[function]';
else
row.cell2.value = object[var].toString();
}
return newTable;
}
答案 3 :(得分:2)
我认为你要找的是这个,http://www.netgrow.com.au/files/javascript_dump.cfm它是相当于coldfusion的转储标签的javascript