在Firebug中,DOM选项卡显示了所有公共变量和对象的列表。在Chrome的控制台中,你必须输入你想要浏览的公共变量或对象的名称。
有没有一种方法——或者至少是一个命令——让Chrome的控制台显示所有公共变量和对象的列表?这将节省大量的打字。
在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 lite扩展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); })();
窗口对象包含所有公共变量,因此您可以在控制台中键入它,然后展开以查看所有变量/属性/函数。
对此,大卫·沃尔什有一个很好的解决方案。以下是我对这个问题的看法,结合了他的解决方案和在这个帖子中发现的东西。
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现在只有全局变量。