2012-01-13 4 views
4

다양한 자바 스크립트 개체와 자바 스크립트에서 생성 된 HTML 요소의 모든 기능을 나열하고 싶습니다. 예를 들어, 다음은 크롬과 파이어 폭스 모두에서 잘 작동 :JavaScript 개체 함수를 열거 하시겠습니까?

... 
insertAdjacentHTML; // function 
insertAdjacentText; // function 
insertAdjacentElement; // function 
getAttribute; // function 
setAttribute; // function 
removeAttribute; // function 
getAttributeNode; // function 
... 

그러나이 작동하지 않습니다 :

<html> 
    <body> 
    <script> 

     var object = document.createElement("select"); 

     for(var prop in object) 
     { 
      document.body.innerHTML += "" + prop + "; // " + typeof object[prop] + "<br/>"; 
     } 

    </script> 
    </body> 
</html> 

이 해당 객체가 이용할 수있는 기능, 예를 들어 포함한 객체의 속성을 출력 IE9, 당신이 얻는 것은 문자열/숫자/객체 속성 뿐이고 절대로 함수 속성이 없습니다.

제 질문은 IE9에서 어떤 함수 이름을 개체가 내 보낸지 어떻게 런타임에 발견 할 수 있습니까?

미리 감사드립니다.

업데이트 : doctype을 추가하면 예상대로 작동합니다.

<!DOCTYPE html> 
    <body> 
    <script> 

     var object = document.createElement("select"); 

     for(var prop in object) 
     { 
      document.body.innerHTML += "" + prop + "; // " + typeof object[prop] + "<br/>"; 
     } 

    </script> 
    </body> 
</html> 
+0

당신에게 IE9에이 실 거예요 작업 ... 난 당신의 코드의 예를하게 확실 [링크] (http://jsfiddle.net/MPADp/1/) 그리고 ie9에서 잘 작동합니다. 직면하고있는 문제는 ie8에 나타납니다 – alex

답변

4

그 코드는 나에게 잘 보이고 IE9에서는 정상적으로 작동합니다. 당신이 DOCTYPE를 지정하면

http://jsbin.com/ivukus/edit#preview

+0

아하! 덕분에, 나는 그것을 얻기 위해 을 추가해야했다. 건배 : – QAZ

+0

은 할 수 있기 전에 몇 분 더 기다려야한다. :) – QAZ

2

이 IE에서 잘 작동합니다. DOCTYPE이 없으면 IE는 Quirks Mode으로 렌더링합니다. IE 5.5의 동작은 IE의 Javascript 지원에 큰 영향을 미칩니다.

<!doctype html> 
<html> 
    <body> 
    <script> 

     var object = document.createElement("select"); 

     for(var prop in object) 
     { 
      document.body.innerHTML += "" + prop + "; // " + typeof object[prop] + "<br/>"; 
     } 

    </script> 
    </body> 
</html> 

결과 :

form; // object 
length; // number 
multiple; // boolean 
name; // string 
options; // object 
selectedIndex; // number 
size; // number 
type; // string 
value; // string 
dataFld; // string 
dataFormatAs; // string 
dataSrc; // string 
add; // function 
item; // function 
namedItem; // function 
remove; // function 
. 
. 
. 
관련 문제