Перечислять функции объектов JavaScript? - PullRequest
4 голосов
/ 13 января 2012

Я хочу перечислить все доступные функции различных объектов JavaScript и даже элементов HTML, созданных в JavaScript.Например, следующее прекрасно работает как в Chrome, так и в FireFox:

<html>
    <body>
    <script>

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

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

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

Это выводит все свойства объекта, включая функции, доступные для этого объекта, например:

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

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

Мой вопрос заключается в том, как я могу обнаружить во время выполнения, какие имена функций экспортируются объектом вIE9?

Заранее большое спасибо.

ОБНОВЛЕНИЕ: при добавлении типа документа все работает как положено.

<!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>

Ответы [ 2 ]

4 голосов
/ 13 января 2012

Этот код выглядит хорошо для меня и работает нормально в IE9 здесь.

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

2 голосов
/ 13 января 2012

Это будет нормально работать в IE, если вы укажете DOCTYPE .Без DOCTYPE IE будет отображать в режиме Quirks , что, по сути, является поведением IE 5.5, что сильно повлияет на поддержку IE Javascript.

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
.
.
.
...