Просмотр всех переменных JavaScript в консоли Google Chrome

В Firebug вкладка DOM отображает список всех ваших общедоступных переменных и объектов. В консоли Chrome вам нужно ввести имя общедоступной переменной или объекта, который вы хотите изучить.

Есть ли способ - или, по крайней мере, команда - для консоли Chrome для отображения списка всех общедоступных переменных и объектов? Это сэкономит много набрав.

Ответ 1

Это тот тип продукции, который вы ищете?

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

Это перечислит все доступное в объекте window (все функции и переменные, например, $ и jQuery на этой странице и т.д.). Хотя это довольно большой список; не уверен, насколько это полезно...

В противном случае просто сделайте window и начните спускаться по его дереву:

window

Это даст вам DOMWindow, расширяемый/исследуемый объект.

Ответ 2

Когда выполнение скрипта остановлено (например, в точке останова), вы можете просто просмотреть все глобальные переменные в правой панели окна инструментов разработчика:

chrome-globals

Ответ 3

Откройте консоль и введите:

  • keys(window) для просмотра переменных
  • dir(window) для просмотра объектов

Ответ 4

Объект window содержит все общедоступные переменные, поэтому вы можете ввести его в консоли, а затем развернуть, чтобы просмотреть все переменные/атрибуты/функции.

chrome-show-all-variables-expand-window-object

Ответ 5

Если вы хотите исключить все стандартные свойства оконного объекта и просмотреть глобальные глобальные приложения, это приведет их к печати на консоли 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);})()

script отлично работает как букмарклет. Чтобы использовать script как букмарклет, создайте новую закладку и замените 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);})()

Ответ 6

У Дэвид Уолш есть хорошее решение для этого. Вот мой подход к этому, сочетая его решение с тем, что было обнаружено в этой теме.

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 теперь имеет только глобалы.

Ответ 7

Возможно, вы захотите попробовать расширение Firebug lite для Chrome.

Ответ 8

Обновлен метод из той же статьи 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);
})();

Ответ 9

Введите следующий оператор в консоли javascript:

debugger

Теперь вы можете проверить глобальную область видимости, используя обычные средства отладки.

Чтобы быть справедливым, вы получите все в области window, включая встроенные браузеры, так что это может быть своего рода иголкой в стоге сена. :/

Ответ 10

Чтобы просмотреть любую переменную в хроме, перейдите в раздел "Источники", а затем "Смотреть" и добавьте его. Если вы добавите переменную "окно" здесь, вы можете развернуть ее и исследовать.

Ответ 11

Поскольку все "общедоступные переменные" на самом деле являются свойствами оконного объекта (окна/вкладки, на которое вы смотрите), вы можете просто проверить объект "window". Если у вас несколько кадров, вам все равно придется выбирать нужный объект окна (например, Firebug).

Ответ 12

enter image description here

Ответ 13

Попробуйте эту простую команду:

console.log(window)

Ответ 14

Введите: this в консоли,

чтобы получить window object, я думаю (?), я думаю, что это в основном то же самое, что печатать window в консоли.

Это работает по крайней мере в Firefox & хром.