GRb*_*oss 225 javascript google-chrome google-chrome-devtools
在Firebug中,DOM选项卡显示所有公共变量和对象的列表.在Chrome的控制台中,您必须键入要浏览的公共变量或对象的名称.
有没有办法 - 或者至少是命令 - Chrome的控制台显示所有公共变量和对象的列表?它会节省很多打字.
Nic*_*ver 306
这是你要找的那种输出吗?
for(var b in window) {
if(window.hasOwnProperty(b)) console.log(b);
}
Run Code Online (Sandbox Code Playgroud)
这将列出一切可用的window对象(所有的函数和变量,例如,$与jQuery此页面上,等等).虽然,这是一个很清单; 不确定它有多大帮助......
否则就这样做,window然后开始走下树:
window
Run Code Online (Sandbox Code Playgroud)
这将为您DOMWindow提供可扩展/可探索的对象.
Mar*_*pel 74
当脚本执行停止时(例如,在断点处),您只需在Developer Tools窗口的右窗格中查看所有全局变量:
小智 55
打开控制台,然后输入:
keys(window) 看变量dir(window) 看对象 Fab*_*ger 37
该window对象包含所有公共变量,因此您可以在控制台中键入它,然后展开以查看所有变量/属性/函数.

Max*_*ber 30
如果要排除窗口对象的所有标准属性并查看特定于应用程序的全局变量,则会将它们打印到Chrome控制台:
(function(){var standardGlobals=["top","window","location","external","chrome","document","inlineCSS","target","width","height","canvas","data","DOMURL","img","svg","ctx","url","w","a","speechSynthesis","webkitNotifications","localStorage","sessionStorage","applicationCache","webkitStorageInfo","indexedDB","webkitIndexedDB","crypto","CSS","performance","console","devicePixelRatio","styleMedia","parent","opener","frames","self","defaultstatus","defaultStatus","status","name","length","closed","pageYOffset","pageXOffset","scrollY","scrollX","screenTop","screenLeft","screenY","screenX","innerWidth","innerHeight","outerWidth","outerHeight","offscreenBuffering","frameElement","clientInformation","navigator","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","history","screen","postMessage","close","blur","focus","ondeviceorientation","ondevicemotion","onunload","onstorage","onresize","onpopstate","onpageshow","onpagehide","ononline","onoffline","onmessage","onhashchange","onbeforeunload","onwaiting","onvolumechange","ontimeupdate","onsuspend","onsubmit","onstalled","onshow","onselect","onseeking","onseeked","onscroll","onreset","onratechange","onprogress","onplaying","onplay","onpause","onmousewheel","onmouseup","onmouseover","onmouseout","onmousemove","onmouseleave","onmouseenter","onmousedown","onloadstart","onloadedmetadata","onloadeddata","onload","onkeyup","onkeypress","onkeydown","oninvalid","oninput","onfocus","onerror","onended","onemptied","ondurationchange","ondrop","ondragstart","ondragover","ondragleave","ondragenter","ondragend","ondrag","ondblclick","oncuechange","oncontextmenu","onclose","onclick","onchange","oncanplaythrough","oncanplay","oncancel","onblur","onabort","onwheel","onwebkittransitionend","onwebkitanimationstart","onwebkitanimationiteration","onwebkitanimationend","ontransitionend","onsearch","getSelection","print","stop","open","showModalDialog","alert","confirm","prompt","find","scrollBy","scrollTo","scroll","moveBy","moveTo","resizeBy","resizeTo","matchMedia","requestAnimationFrame","cancelAnimationFrame","webkitRequestAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","captureEvents","releaseEvents","atob","btoa","setTimeout","clearTimeout","setInterval","clearInterval","TEMPORARY","PERSISTENT","getComputedStyle","getMatchedCSSRules","webkitConvertPointFromPageToNode","webkitConvertPointFromNodeToPage","webkitRequestFileSystem","webkitResolveLocalFileSystemURL","openDatabase","addEventListener","removeEventListener","dispatchEvent"];
var appSpecificGlobals={};
for (var w in window){
if (standardGlobals.indexOf(w)==-1) appSpecificGlobals[w]=window[w];
}
console.log(appSpecificGlobals);})()
Run Code Online (Sandbox Code Playgroud)
该脚本可以很好地用作书签.要将脚本用作书签,请创建新书签并使用以下内容替换URL:
javascript:(function(){var standardGlobals=["top","window","location","external","chrome","document","inlineCSS","target","width","height","canvas","data","DOMURL","img","svg","ctx","url","w","a","speechSynthesis","webkitNotifications","localStorage","sessionStorage","applicationCache","webkitStorageInfo","indexedDB","webkitIndexedDB","crypto","CSS","performance","console","devicePixelRatio","styleMedia","parent","opener","frames","self","defaultstatus","defaultStatus","status","name","length","closed","pageYOffset","pageXOffset","scrollY","scrollX","screenTop","screenLeft","screenY","screenX","innerWidth","innerHeight","outerWidth","outerHeight","offscreenBuffering","frameElement","clientInformation","navigator","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","history","screen","postMessage","close","blur","focus","ondeviceorientation","ondevicemotion","onunload","onstorage","onresize","onpopstate","onpageshow","onpagehide","ononline","onoffline","onmessage","onhashchange","onbeforeunload","onwaiting","onvolumechange","ontimeupdate","onsuspend","onsubmit","onstalled","onshow","onselect","onseeking","onseeked","onscroll","onreset","onratechange","onprogress","onplaying","onplay","onpause","onmousewheel","onmouseup","onmouseover","onmouseout","onmousemove","onmouseleave","onmouseenter","onmousedown","onloadstart","onloadedmetadata","onloadeddata","onload","onkeyup","onkeypress","onkeydown","oninvalid","oninput","onfocus","onerror","onended","onemptied","ondurationchange","ondrop","ondragstart","ondragover","ondragleave","ondragenter","ondragend","ondrag","ondblclick","oncuechange","oncontextmenu","onclose","onclick","onchange","oncanplaythrough","oncanplay","oncancel","onblur","onabort","onwheel","onwebkittransitionend","onwebkitanimationstart","onwebkitanimationiteration","onwebkitanimationend","ontransitionend","onsearch","getSelection","print","stop","open","showModalDialog","alert","confirm","prompt","find","scrollBy","scrollTo","scroll","moveBy","moveTo","resizeBy","resizeTo","matchMedia","requestAnimationFrame","cancelAnimationFrame","webkitRequestAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","captureEvents","releaseEvents","atob","btoa","setTimeout","clearTimeout","setInterval","clearInterval","TEMPORARY","PERSISTENT","getComputedStyle","getMatchedCSSRules","webkitConvertPointFromPageToNode","webkitConvertPointFromNodeToPage","webkitRequestFileSystem","webkitResolveLocalFileSystemURL","openDatabase","addEventListener","removeEventListener","dispatchEvent"]; var $appSpecificGlobals={};for (var w in window){if (standardGlobals.indexOf(w)==-1) $appSpecificGlobals[w]=window[w];} window.$appSpecificGlobals=$appSpecificGlobals;console.log(window.$appSpecificGlobals);})()
Run Code Online (Sandbox Code Playgroud)
David Walsh为此提供了一个很好的解决方案.以下是我对此的看法,将他的解决方案与此线程上发现的内容相结合.
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);
Run Code Online (Sandbox Code Playgroud)
x 现在只有全局变量.
我结束使用它进行调试:
for (aProperty in window) {
try{
console.log(aProperty +':'+JSON.stringify(window[aProperty]));
}catch{}
}
Run Code Online (Sandbox Code Playgroud)
try用于避免TypeError: Converting circular structure to JSON
然后Save as...控制台输出到文件并进一步操作。
列出变量及其值
for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }
Run Code Online (Sandbox Code Playgroud)
显示特定变量对象的值
console.log(JSON.stringify(content_of_some_variable_object))
Run Code Online (Sandbox Code Playgroud)
资料来源:@northern-bradley 的评论和 @nick-craver 的回答
小智 6
来自Avindra 提到的同一文章的更新方法- 注入 iframe 并将其contentWindow属性与全局窗口属性进行比较。
(function() {
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)) {
console.log(key);
}
});
};
iframe.src = 'about:blank';
document.body.appendChild(iframe);
})();Run Code Online (Sandbox Code Playgroud)
在javascript控制台中输入以下语句:
debugger
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用常规调试工具检查全局范围。
说句公道话,你会得到一切的window范围,包括浏览器的内置插件,所以它可能是某种针-IN-A-草垛体验。:/
输入:this在控制台中,
为了得到我认为(?),我认为它基本上与在控制台中window object输入相同。window
它至少可以在 Firefox 和 Chrome 中运行。
| 归档时间: |
|
| 查看次数: |
357775 次 |
| 最近记录: |