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

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


当前回答

我停止使用这个来调试:

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

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

其他回答

要查看chrome中的任何变量,请转到“来源”,然后“观看”并添加它。如果你在这里添加“window”变量,那么你可以展开它并进行探索。

这就是你想要的输出吗?

for(var b in window) { 
  if(window.hasOwnProperty(b)) console.log(b); 
}

这将列出窗口对象中所有可用的内容(所有函数和变量,例如,本页上的$和jQuery等)。虽然,这是一个相当长的列表;不知道它有多大帮助…

否则就只做window,然后从树往下看

window

这将给你一个DOMWindow,一个可扩展/可探索的对象。

对此,大卫·沃尔什有一个很好的解决方案。以下是我对这个问题的看法,结合了他的解决方案和在这个帖子中发现的东西。

https://davidwalsh.name/global-variables-javascript

x = {};
var iframe = document.createElement('iframe');
iframe.onload = function() {
    var standardGlobals = Object.keys(iframe.contentWindow);
    for(var b in window) { 
      const prop = window[b];
      if(window.hasOwnProperty(b) && prop && !prop.toString().includes('native code') && !standardGlobals.includes(b)) {
        x[b] = prop;
      }
    }
    console.log(x)
};
iframe.src = 'about:blank';
document.body.appendChild(iframe);

X现在只有全局变量。

列出变量及其值

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的回答