Ansicht Liste aller JavaScript-Variablen in Google Chrome-Konsole
-
05-10-2019 - |
Frage
In Firebug, die DOM-Registerkarte zeigt eine Liste aller Ihrer öffentlichen Variablen und Objekte. In Chrome-Konsole haben Sie den Namen der öffentlichen Variablen eingeben oder Objekt, das Sie erkunden wollen.
Gibt es eine Möglichkeit - oder zumindest einen Befehl - für Chrome-Konsole eine Liste, die alle öffentlichen Variablen und Objekte angezeigt werden? Es wird eine Menge Tipparbeit sparen.
Lösung
Ist das die Art der Ausgabe, die Sie suchen?
for(var b in window) {
if(window.hasOwnProperty(b)) console.log(b);
}
Dies wird die Liste alles auf dem window
Objekt (alle Funktionen und Variablen, zum Beispiel $
und jQuery
auf dieser Seite, etc.). Obwohl, das ist eine ganz Liste; nicht sicher, wie nützlich es ist ...
Ansonsten nur window
tun und beginnt ihren Baum hinunter:
window
Dies werden Sie DOMWindow
, ein erweiterbares / erforschbaren Objekt.
Andere Tipps
Wenn die Skriptausführung wird angehalten (zum Beispiel auf einem Breakpoint) Sie einfach alle Globals im rechten Fensterbereich der Developer Tool Fenster anzeigen können:
Öffnen Sie die Konsole und geben Sie dann:
-
keys(window)
Variablen sehen -
dir(window)
Objekte sehen
Das window
Objekt enthält alle öffentlichen Variablen, so dass Sie es in der Konsole eingeben können und erweitern Sie dann alle Variablen / Eigenschaften / Funktionen anzuzeigen.
Wenn Sie alle die Standardeigenschaften der Fensterobjekt und Ansicht anwendungsspezifische Globals ausschließen wollen, dies wird sie in der Chrome-Konsole aus:
(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);})()
Das Skript funktioniert gut als Bookmarklet. Um das Skript als Bookmarklet zu verwenden, um ein neues Lesezeichen erstellen und die URL mit dem folgenden ersetzt werden:
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);})()
David Walsh hat eine schöne Lösung. Hier ist meine Meinung dazu, die Kombination seine Lösung mit dem, was auch auf diesem Thread entdeckt wurde.
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
hat jetzt nur noch die Globals.
Sie möchten diese Firebug lite Erweiterung für Chrome.
Aktualisiert Methode von gleichen Artikel Avindra erwähnt - einspritzt iFrame und vergleichen ihre contentWindow
Eigenschaften global Fenstereigenschaften.
(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);
})();
Geben Sie die folgende Anweisung in der JavaScript-Konsole:
debugger
Nun können Sie den globalen Bereich mit den normalen Debug-Tool überprüfen.
Um fair zu sein, die Sie erhalten alles im window
Umfang, einschließlich Browser eingebauter Funktionen, so dass es Erfahrung einer Art von Nadel-in-a-Heuhaufen sein könnte. : /
jede Variable in Chrom zu sehen, gehen Sie auf „Quellen“ und dann auf „Watch“ und hinzufügen. Wenn Sie das „Fenster“ Variable hinzufügen hier dann können Sie diese erweitern und erforschen.
Wie alle „öffentliche Variablen“ sind in der Tat Eigenschaften des Window-Objekts (das Fenster / Tab Sie suchen), können Sie einfach das „Fenster“ Objekt inspizieren statt. Wenn Sie mehrere Frames haben, müssen Sie das richtige Fenster Objekt auswählen (wie in Firebug) sowieso.
Versuchen Sie, diese einfachen Befehl:
console.log(window)
Typ: this
in der Konsole
erhalten die window object
Ich denke, (?), Ich glaube, es ist im Grunde die gleiche wie die Eingabe window
in der Konsole.
Es funktioniert zumindest in Firefox & Chrome.