Voir la liste de toutes les variables JavaScript dans Google Chrome Console
-
05-10-2019 - |
Question
Dans Firebug, l'onglet DOM affiche une liste de toutes vos variables publiques et des objets. Dans la console de Chrome, vous devez taper le nom de la variable publique ou de l'objet que vous voulez explorer.
Est-il possible - ou tout au moins une commande - pour la console de Chrome pour afficher une liste de toutes les variables publiques et des objets? Il permettra d'économiser beaucoup de taper.
La solution
Est-ce le genre de sortie que vous cherchez?
for(var b in window) {
if(window.hasOwnProperty(b)) console.log(b);
}
Cette liste est disponible sur tout l'objet window
(toutes les fonctions et variables, par exemple, $
et jQuery
sur cette page, etc.). Bien, cela est tout à fait une liste; ne sais pas comment il est utile ...
Sinon juste faire window
et commencer à descendre son arbre:
window
Cela vous donnera DOMWindow
, un objet extensible / explorable.
Autres conseils
Lors de l'exécution du script est interrompue (par exemple, sur un point d'arrêt), vous pouvez simplement consulter tous les globals dans le volet droit de la fenêtre Outils de développement:
Ouvrez la console, puis entrez:
-
keys(window)
voir les variables -
dir(window)
voir les objets
L'objet window
contient toutes les variables publiques, de sorte que vous pouvez taper dans la console puis développez pour afficher toutes les variables / attributs / fonctions.
Si vous voulez exclure toutes les propriétés standard de l'objet de la fenêtre et vue GLOBALS spécifiques à l'application, ce qui les imprimer à la 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);})()
Le script fonctionne bien comme un bookmarklet. Pour utiliser le script comme un bookmarklet, créez un nouveau signet et remplacer l'URL par ce qui suit:
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 a une bonne solution pour cela. Voici mon avis sur ce, en combinant sa solution avec ce qui a été découvert sur ce fil ainsi.
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
a maintenant seulement globals.
Vous pouvez essayer cette Firebug Lite extension pour Chrome.
Mise à jour de la méthode même article AVINDRA mentionné - injectent Iframe et comparer ses propriétés contentWindow
au global propriétés de fenêtre.
(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);
})();
Tapez l'instruction suivante dans la console javascript:
debugger
Vous pouvez maintenant vérifier la portée globale à l'aide des outils de débogage normaux.
Pour être juste, vous aurez tout dans le périmètre de window
, y compris navigateur Encastrements, il pourrait être une sorte d'une aiguille dans une botte de foin expérience. : /
Pour afficher une variable en chrome, allez dans « Sources », puis « Watch » et l'ajouter. Si vous ajoutez ici la variable « fenêtre », vous pouvez développer et explorer.
Comme toutes les « variables » sont publiques dans les propriétés de fait de l'objet de la fenêtre (de la fenêtre / onglet vous regardez), vous pouvez juste inspecter l'objet « fenêtre » à la place. Si vous disposez de plusieurs cadres, vous devrez sélectionner l'objet fenêtre correcte (comme dans Firebug) de toute façon.
Essayez cette commande simple:
console.log(window)
Type: this
dans la console,
pour obtenir le window object
je pense (?), Je pense qu'il est fondamentalement la même chose que taper window
dans la console.
Il fonctionne au moins dans Firefox et Chrome.