Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / HTMLCollection instanceof Object / 7 сообщений из 7, страница 1 из 1
30.07.2008, 10:43
    #35459560
Javakka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
Приветствую всех!
Кто-нибудь может подсказать, почему следующая конструкция в IE6 пишет false, хотя в Mozilla 2 - true? Это глюк кого-то из них, или тут есть какой-то более глубокий смысл?

Код: plaintext
1.
2.
var a = document.getElementsByTagName("div");
document.write(a instanceof Object);
...
Рейтинг: 0 / 0
30.07.2008, 17:46
    #35461189
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
Смысл тут такой.
В ИЕ Объект.прототип.мой_функций() наследуется только объектами ЯваСкрипт.
А в других браузерах и ДОМ-элементами.
Как правильно - трудно сказать. У всех своя правда. ДОМ элементы не специфицированы в ECMAScript-272.

Но мне меньше нравится позиция ИЕ по той простой причине, что создается ощущение, что МС не реализовали такую возможность скорее от лени, вернее желания поскорее выдать нагора очередной продукт, чем сознательно.
...
Рейтинг: 0 / 0
30.07.2008, 17:48
    #35461195
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
кстати, если Вам конкретно нужна такая проверка используйте typeof el == "object"
...
Рейтинг: 0 / 0
30.07.2008, 20:12
    #35461494
Javakka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
Понял, спасибо за объяснение!
...
Рейтинг: 0 / 0
31.07.2008, 09:06
    #35461927
Javakka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
Обнаружилась ещё одна проблемка.

Вообще-то суть вопроса в том, чтобы проверить, что переданный аргумент является объектом, а не простым типом. "typeof el == object" работало идеально до тех пор, пока я не попробовал протестировать функцию в Safari. Там объект, возвращаемый функцией getElementsByTagName, имеет typeof, страшно сказать, "function"! Это вообще doesn't make any sense to me. И как быть?

Я пока использовал следующий подход, что называется, в лоб:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SIMPLE_TYPES_ARRAY = new Array();
SIMPLE_TYPES_ARRAY["string"]  = true;
SIMPLE_TYPES_ARRAY["number"]  = true;
SIMPLE_TYPES_ARRAY["boolean"] = true;

...

if (SIMPLE_TYPES_ARRAY[typeof element]) {
    ...
}

Корректно ли это? И что вы можете сказать по поводу ещё более загадочного поведения Safari?
...
Рейтинг: 0 / 0
31.07.2008, 09:43
    #35462015
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
JavakkaКорректно ли это? И что вы можете сказать по поводу ещё более загадочного поведения Safari?

Смотря что считаете "простым типом". Если это типы кроме object и function, то есть еще undefined и null. Может, их тоже добавить (null хоть и объект, но специфический).

Про Safari тут: http://dhtmlkitchen.com/news/default/2007/10/10/
...
Рейтинг: 0 / 0
31.07.2008, 09:57
    #35462048
Javakka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HTMLCollection instanceof Object
Спасибо за ссылку, познавательно. Ну а с null и undefined я там разбираюсь отдельно :о)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / HTMLCollection instanceof Object / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]