Domanda

In Firebug, la scheda DOM mostra un elenco di tutte le variabili pubbliche e gli oggetti. Nella console di Chrome è necessario digitare il nome della variabile pubblica o l'oggetto che si desidera esplorare.

C'è un modo - o almeno un comando - per la console di Chrome per visualizzare un elenco di tutte le variabili pubbliche e gli oggetti? Ciò consentirà di risparmiare un sacco di battitura.

È stato utile?

Soluzione

E 'questo il tipo di output che stai cercando?

for(var b in window) { 
  if(window.hasOwnProperty(b)) console.log(b); 
}

Questo elencherà tutto a disposizione per l'oggetto window (tutte le funzioni e le variabili, per esempio, $ e jQuery in questa pagina, ecc). Anche se, questo è piuttosto una lista; Non sono sicuro quanto sia utile ...

In caso contrario, basta fare window e iniziare scendendo suo albero:

window

Questo vi darà DOMWindow, un oggetto espandibile / esplorabile.

Altri suggerimenti

Quando viene interrotta l'esecuzione dello script (ad esempio, su un punto di interruzione) si può semplicemente visualizzare tutte le variabili globali nel riquadro destro della finestra Developer Tools:

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

Aprire la console e digitare:

  • keys(window) per vedere le variabili
  • dir(window) per vedere gli oggetti

L'oggetto window contiene tutte le variabili pubbliche, in modo da poter digitare nella console e quindi espandere per visualizzare tutte le variabili / attributi / funzioni.

cromo-show-tutte-le variabili-espandono-window-oggetto

Se si desidera escludere tutte le proprietà standard delle variabili globali degli oggetti finestra e visualizzazione applicazione-specifici, questo li stamperà alla console 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);})()

Lo script funziona bene come un bookmarklet. Per utilizzare lo script come un bookmarklet, creare un nuovo segnalibro e sostituire l'URL con il seguente:

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 ha una bella soluzione per questo. Ecco il mio prendere su questo, che unisce la sua soluzione con quanto è stato scoperto su questo thread pure.

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 ora ha solo le variabili globali.

Si consiglia di provare questo Firebug Lite estensione per Chrome.

metodo aggiornato dalla stessa articolo Avindra detto - inietta iFrame e confrontare le sue proprietà contentWindow al globale proprietà della finestra.

(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);
})();

Digitare la seguente istruzione nella console javascript:

debugger

Ora si può controllare la portata globale utilizzando i normali strumenti di debug.

Per essere onesti, si otterrà tutto nel campo di applicazione window, compreso il browser built-in, quindi potrebbe essere una sorta di esperienza ago-in-a-pagliaio. : /

Per visualizzare qualsiasi variabile in cromo, vai a "Sources", e poi "Watch" e inserirlo. Se si aggiunge la variabile "finestra" qui allora si può espandere ed esplorare.

Come tutte le "variabili pubbliche" sono in realtà le proprietà dell'oggetto finestra (della finestra / tab si sta guardando), si può solo ispezionare l'oggetto "finestra", invece. Se si dispone di più fotogrammi, si dovrà selezionare l'oggetto finestra corretta (come in Firebug) in ogni caso.

entrare descrizione dell'immagine qui

Prova questo semplice comando:

console.log(window)

Tipo: this nella console,

per ottenere il window object credo (?), Penso che sia fondamentalmente la stessa digitazione window nella console.

Funziona, almeno in Firefox e Chrome.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top