2013-05-08 2 views
1

Chrome에서는 자바 스크립트로 디버깅 할 때 요소의 인터페이스를 얻는 것이 흥미 롭습니다.자바 스크립트에서 요소의 인터페이스

콘솔에서 요소를 보유하는 변수 이름을 입력하면 대개 요소 태그가 표시됩니다. 요소와 일치하는 인터페이스를 얻으려면 어떻게해야합니까? 때로는 Chrome에서 출력하지만 때로는 태그를 제공합니다. Chrome에서 값을 반환하는 방법을 잘 모르겠습니다.

+1

는 "인터페이스"이 상황에서 무엇을 의미합니까? – isherwood

+0

가능한 [어떻게하면 Chrome에서 jQuery DOM 요소를 console.log에 동기화합니까?] (http://stackoverflow.com/questions/13974740/how-do-i-console-log-a-jquery-dom-element- in-chrome) – Neal

+0

DOM 인터페이스 ... HTMLElement, SVGElement, HTMLInputElement 등 – jsgoupil

답변

2

브라우저는 출력을 더 읽기 쉽게하기 위해 console.log을 통해 사물을 표시 할 때 현명합니다. 탐색 할 수있는 특성 트리를 지속적으로 얻으려면 console.dir을 사용할 수 있습니다.

interface은 JS에서는 의미가없고 다른 언어에서는 매우 구체적인 의미가 있습니다. console.log(element.__proto__);을 사용하여 요소의 프로토 타입을보고 DOM 요소의 WebIDL 인터페이스를 볼 수는 있지만 브라우저에 완전히 의존하고 비표준입니다. 당신이 하나 개의보기 또는 당신이 원하는 지정하여 다른 강제 할 수처럼

+0

사실, console.dir을 통해 나는 거의 내가 원하는 것을 얻는다. 인터페이스가 \ _ \ _ proto__에 있음을 알았습니다. 그래서 요소 .__ proto__을 쓰는 것은 내가 원하는 것을 나에게주는 것처럼 보입니다. – jsgoupil

+0

@jsgoupil JS는 인터페이스 개념이 없다. 메쏘드가'this.method = function() {}'을 통해 추가되는 경우 메소드는'console.dir'의 출력에 직접있을 수도 있고,'proto' 내부에있을 수도 있습니다 'proto'의'proto' 파일에는 모든 함수 목록이 하나도 없습니다. – loganfsmyth

+0

DOM 요소에는 확실히 인터페이스가 있습니다. 이것이 제가 찾고 있던 것입니다. 그와 같은 것 : http://www.w3.org/TR/html-markup/input.text.html#input.text-interface – jsgoupil

0

같습니다 :

console.dir(el) 

당신에게 그 el의 "인터페이스"를 제공을

console.dirxml(el) 

를 인쇄 요소로하면서 요소 패널에 나타납니다. 당신이 (즉 __proto__를 사용하지 않는) 표준 방법을 원하는 경우에

1

:

console.log(el.constructor.name); 
관련 문제