Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как проверить наличие объекта


Автор: Leshak 21.10.2005, 13:16
есть объект

parent.window.frames("plays_pic").setShow.tims

периодически возникает сообщение - есть null или не является объектом

пытаюсь проверить if ( set.tims ) {} - тоже самое

Как проверить наличие объекта перед его использованием

Автор: Aliance 21.10.2005, 15:13
не правильно обращаешься к фрейму

Автор: Leshak 21.10.2005, 15:25
Упс!
вообще-то я спрашивал "конкретно" про другое...

есть объект - и все бы ничего - его спрашиваю - он отвечает


var set = parent.window.frames("plays_pic").setShow ;

pausa = set.tims ;


но периодически возникает сообщение -

set.tims - есть null или не является объектом

пытаюсь проверить if ( set.tims ) {} - тоже самое

Как проверить наличие объекта перед его использованием

Автор: Sardar 21.10.2005, 15:38
Цитата(Leshak @ 21.10.2005, 14:25)

пытаюсь проверить if ( set.tims ) {} - тоже самое

Проблема в том что у тебя set время от времени null/undefined. Во вторых обращайся к фрймам так: parent.frames["plays_pic"].setShow;. В третьих что есть setShow? может твой фрейм время от времени перезагружаеться, тогда все обьекты удаляються, следовательно будет возвращаться undefined.

Автор: Leshak 21.10.2005, 16:12
О!

без window в parent.window.frames("plays_pic").setShow
еще ни разу не выскочила ошибка!

а setShow - это имя формы в которой назначается пауза перед сменой картинки

но вопрос так и остался - "Как в JS проверить наличие объекта перед его использованием"

Автор: Sardar 21.10.2005, 16:40
Цитата(Leshak @ 21.10.2005, 15:12)
Как в JS проверить наличие объекта перед его использованием

Через typeof если это переменная и просто if если это свойство. Что бы было ясно:
Код

var a=90; //это обьект в глобальном пространстве
if(typeof(a)!='undefined') alert('А существует');
//а такой код выдаст ошибку:
if(a) alert('А существует');
//в то же время свойства можно проверять без проблем если обьект в переменной не null/undefined

if(window.a) alert('А существует');
if(!window.b) alert('B не существует');

//таким образом твою форму проверяем так:
if(parent.frames["plays_pic"].forms.setShow) alert('форма существует');
//замечаем что я обратился к коллекции forms
//без forms будет работать подход принятый не очень умными людьми из Netscape который уже несколько лет грозиться умереть. Не надо это использовать, всегда обращайся к forms.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)