2011-12-20 4 views
2

Я использую стороннее приложение для календаря, которое выдает ошибку в Firefox, которая читает «Разрешение на доступ к свойству« parentNode »». В Safari я получаю «TypeError:« undefined »не является объектом (оценка« t.parentNode »)». Вот мой цикл while. Примечание: Я не писал этот код, но я пытаюсь исправить его и потерпеть неудачу.while (x! == null) приводит к ошибке

while (t.parentNode !== null) { 
    if (t.id === this.divName) {     
     return true; 
    } 

    t = t.parentNode; 
} 

Любая помощь очень ценится!

ответ

1

Вы уверены, что t не undefined в начале вашего цикла?

+0

Это то, что происходило в моем конкретном случае. Я завернул его в if (t) {//}, который, казалось, устранил проблему. Спасибо всем за ваши ответы! –

+0

Chrome дает 'ReferenceError: t не определен'. Гораздо понятнее для отладки :-) – cmbuckley

5

Вы имеете в виду while (t.parentNode).

В корне DOM parentNode будет пустым, а не пустым массивом.

+0

Я тестировал тестирование на свойство .length. Я неправильно оставил его в своем примере кода. Обновлено. –

+0

Попробуйте 'while (t.parentNode)'; это будет проверять и на 'undefined'. – SLaks

+0

while (t.parentNode) {// stuff} все равно дает мне ту же ошибку. –

0

Вы также можете использовать

while (t = t.parentNode) { 
    if (t.id === this.divName) {     
     return true; 
    } 
} 

видеть это (основной) example

1

Если вы используете календарь Matt Kruse, если вы посмотрите на линии, непосредственно предшествующий код, который вы вставили он будет говорить:

var t = e.originalTarget; 

Исправление, работал для меня, чтобы изменить это:

var t = typeof e.originalTarget === 'undefined' ? e.srcElement : e.originalTarget; 
+0

Я использую его календарь. Спасибо! –

2

Думаю, вы говорите о календаре Мэтта Крузе. Я исправил проблему, меняя строку ниже на ваш цикл, поскольку ни одно из решений, показанных в этой теме, не работало для меня.

Изменение было в линии 49, как раз перед циклом, где он говорит:

вар т = e.originalTarget;

должно быть:

вар т = e.target;

и что сделал dissapear сообщения от firebug

Смежные вопросы