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.

War es hilfreich?

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:

< img src = "https://farm4.static.flickr.com/3399/4649969826_38bab44126.jpg" width = "500" height = "356" alt = "chrome-Globals">

Ö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.

chrome-show-all-Variablen-expand-Fenster-Objekt

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.

eingeben Bild Beschreibung hier

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top