在Firebug中,DOM选项卡显示了所有公共变量和对象的列表。在Chrome的控制台中,你必须输入你想要浏览的公共变量或对象的名称。

有没有一种方法——或者至少是一个命令——让Chrome的控制台显示所有公共变量和对象的列表?这将节省大量的打字。


当前回答

当脚本执行暂停时(例如,在一个断点上),你可以简单地在开发人员工具窗口的右侧窗格中查看所有全局变量:

其他回答

Avindra在同一篇文章中提到的更新方法-注入iframe并将其contentWindow属性与全局窗口属性进行比较。

(函数() { var iframe = document.createElement('iframe'); iframe.onload = function() { var iframeKeys = Object.keys(iframe.contentWindow); Object.keys(window).forEach(function(key) { if(!(iframeKeys.indexOf(key) > -1)) { 控制台.log(键); } }); }; iframe.src = 'about:blank'; document.body.appendChild(iframe); })();

因为所有的“公共变量”实际上都是窗口对象(你正在查看的窗口/选项卡)的属性,你可以只检查“窗口”对象。如果你有多个帧,你将不得不选择正确的窗口对象(就像在Firebug中)。

列出变量及其值

for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }

显示特定变量对象的值

console.log(JSON.stringify(content_of_some_variable_object))

来源:来自@north -bradley的评论和来自@nick- cravver的回答

输入:在控制台,

获取窗口对象,我认为(?),我认为这基本上与在控制台中输入window是一样的。

它至少在Firefox和chrome上工作。

我停止使用这个来调试:

for (aProperty in window) {
    try{
        console.log(aProperty +':'+JSON.stringify(window[aProperty]));
    }catch{}
}

try用于避免TypeError:将循环结构转换为JSON 然后另存为…控制台输出到文件中并进行进一步操作。