Chrome 콘솔에서 모든 JavaScript 변수 목록보기


236

Firebug의 DOM 탭에는 모든 공용 변수 및 객체 목록이 표시됩니다. Chrome 콘솔에서 탐색하려는 공개 변수 또는 객체의 이름을 입력해야합니다.

Chrome 콘솔에 모든 공용 변수 및 객체 목록을 표시하는 방법 또는 최소한 명령이 있습니까? 많은 타이핑을 저장합니다.

답변:


330

이것은 당신이 찾고있는 종류의 출력입니까?

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

이 의지 목록상의 가능한 모든 window객체 (예를 들어, 모든 함수와 변수, $그리고 jQuery이 페이지 등). 그러나 이것은 상당히 목록입니다. 그것이 얼마나 도움이되는지 모르겠다 ...

그렇지 않으면 그냥 window나무 아래로 내려 가기 시작하십시오.

window

이렇게하면 DOMWindow확장 / 탐색 가능한 객체가됩니다.


4
@ntownsend-내 콘솔이 당신과 동의하지 않습니다 :) 의 속성입니다object . 왜 그렇지 않습니까?
Nick Craver

9
"왜 안 되겠 어?" [[Prototype]]전역 객체 의 내부 속성은 구현에 따라 달라 지며 거의 모든 주요 구현 (V8, Spidermonkey, Rhino 등)에서 전역 객체는 어느 시점에서 상속받습니다.Object.prototype 되지만 다른 구현에서는 -JScript, BESEN, DMDScript 등입니다. ..- window.hasOwnProperty존재하지 않기 때문에 테스트 할 수 있습니다.Object.prototype.isPrototypeOf(window);
CMS

10
@CMS-그렇습니다.하지만 질문은 특히 Chrome에 관한 것이므로 구현이 알려져 있습니다.
Nick Craver

6
아니면 그냥 입력해도됩니다.
Eddie B

2
나는 또한 변수의 가치를보고 싶었습니다.for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }
Northern-bradley

75

스크립트 실행이 중단되면 (예 : 중단 점) 개발자 도구 창의 오른쪽 창에서 모든 전역을 볼 수 있습니다.

크롬-글로벌


2
중단 점 쇼와 같이 실행 컨텍스트에서 vars를 멈추지 않고 뱉을 수 있습니까?
Mild Fuzz

1
@MildFuzz 그런 다음 Nick Craver의 솔루션 (허용 된 솔루션)을 사용하십시오.
Marcel Korpel

61

콘솔을 열고 다음을 입력하십시오.

  • keys(window) 변수를 보려면
  • dir(window) 사물을보기 위해

dir(Function("return this")())너무 웹 근로자에서 작동합니다
야누스 Troelsen

2
참고 dir(window)Firefox에서 작동하지 않습니다 (예 :이 스레드가 Chrome에 관한 것임을 알고 key(window)있습니다). Firefox에서는 작동합니다.
Craig London

38

window콘솔에 입력 한 후 모든 변수 / 속성 / 기능을 볼 수 확장 할 수 있도록 객체는, 모든 공용 변수가 포함되어 있습니다.

크롬 쇼 모든 변수 확장 창 개체


4
좋은! 변수를 재귀 적으로 확장 할 수 있으므로 가장 쉬운 방법입니다.
qwertzguy 2

31

창 개체의 모든 표준 속성을 제외하고 응용 프로그램 별 전역을 보려면 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);})()

스크립트는 북마크릿으로 잘 작동합니다. 스크립트를 책갈피로 사용하려면 새 책갈피를 작성하고 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);})()

2
다음은 현재 Chrome 및 Firefox 기본 글로벌 목록입니다. pastebin.com/wNj3kfg0
redaxmedia

9

David Walsh는이를위한 훌륭한 솔루션을 제공합니다. 여기 에이 스레드에서 발견 된 솔루션과 그의 솔루션이 결합되어 있습니다.

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 이제는 전 세계 만 있습니다.


1
prop.toStringif(window.hasOwnProperty(b) && prop && (prop.toString && !prop.toString().includes('native code')) && !standardGlobals.includes(b))
어디에도

6

자바 스크립트 콘솔에 다음 명령문을 입력하십시오.

debugger

이제 일반 디버그 도구를 사용하여 전역 범위를 검사 할 수 있습니다.

공평하게 말하면 브라우저 내장을 포함 하여 범위 내 모든 것을 얻을 window수 있으므로 일종의 건초 더미 환경 일 수 있습니다. : /


4

Chrome 용 Firebug lite 확장 프로그램 을 사용해 볼 수 있습니다 .


3
멋지게 보이지만,이 솔루션은 대포를 사용하여 모기를 죽이는 것 같습니다.
Marcel Korpel

아마도. 내가 찾은 것은 객체 / 함수 / 등을 보여주는 유일한 것입니다. FF의 방화범이하는 방식 (확장자의 DOM- 탭 아래). 그래도 조금 느립니다.
KooiInc

1
5 월 17 일부터 링크가 끊어졌습니다. 이것은 동일합니까? getfirebug.com/releases/lite/chrome
이안 헌터

@beanland 7 : 응, 경고에 대한 답변 thnx
KooiInc

4

크롬에서 변수를 보려면 "소스"로 이동 한 다음 "감시"로 이동하여 추가하십시오. 여기에 "창"변수를 추가하면 변수를 확장하고 탐색 할 수 있습니다.


4

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


2

유형: this 콘솔에서,

window objectI think (?) 를 얻으려면 기본적으로 입력하는 것과 동일하다고 생각합니다.window 콘솔에 .

적어도 Firefox 및 Chrome에서 작동합니다.


1

모든 "공개 변수"는 실제로보고있는 창 / 탭의 창 개체 속성이므로 "창"개체를 대신 검사하면됩니다. 프레임이 여러 개인 경우 어쨌든 올바른 창 개체 (Firebug와 같은)를 선택해야합니다.



0

변수와 그 값을 나열

for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }

여기에 이미지 설명을 입력하십시오

특정 변수 객체의 값을 표시합니다

console.log(JSON.stringify(content_of_some_variable_object))

여기에 이미지 설명을 입력하십시오

출처 : @ northern-bradley의 의견과 @ nick-craver의 답변


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.