在Firebug中,DOM选项卡显示了所有公共变量和对象的列表。在Chrome的控制台中,你必须输入你想要浏览的公共变量或对象的名称。
有没有一种方法——或者至少是一个命令——让Chrome的控制台显示所有公共变量和对象的列表?这将节省大量的打字。
在Firebug中,DOM选项卡显示了所有公共变量和对象的列表。在Chrome的控制台中,你必须输入你想要浏览的公共变量或对象的名称。
有没有一种方法——或者至少是一个命令——让Chrome的控制台显示所有公共变量和对象的列表?这将节省大量的打字。
当前回答
对此,大卫·沃尔什有一个很好的解决方案。以下是我对这个问题的看法,结合了他的解决方案和在这个帖子中发现的东西。
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现在只有全局变量。
其他回答
当脚本执行暂停时(例如,在一个断点上),你可以简单地在开发人员工具窗口的右侧窗格中查看所有全局变量:
你可能想尝试这个Firebug lite扩展Chrome。
列出变量及其值
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的回答
在javascript控制台中输入以下语句:
debugger
现在可以使用正常的调试工具检查全局作用域。
公平地说,您将获得窗口范围内的所有内容,包括浏览器内置,因此这可能是一种大海捞针的体验。:/
我停止使用这个来调试:
for (aProperty in window) {
try{
console.log(aProperty +':'+JSON.stringify(window[aProperty]));
}catch{}
}
try用于避免TypeError:将循环结构转换为JSON 然后另存为…控制台输出到文件中并进行进一步操作。