2013-07-02 6 views
-1

Это мой код:Как дождаться загрузки IFrame?

elFrame = parentContainer.find('iframe'); 
elFrame.load(function() { 
    elFrame.contents().find('body').css('background-color', 'red'); 
}); 

Я добавить в «IFRAME» в parentContainer через строку так:

parentContainer.append('<iframe src='+link+'></iframe>'); 

и теперь я хочу, чтобы изменить Тело фрейма каждый раз, когда это загружен.

Эта функция никогда не вызывается на моем веб-сайте. Где я ошибаюсь?

+1

Синтаксис события загрузки, как вы используете, устарел (или будет), но это не ваша проблема. Возвращает ли elFrame ожидаемый элемент? –

+0

elFrame корректно отображается в браузере, он называется. Но я не могу дождаться его загрузки. Я думаю, проблема в том, что я делаю что-то вроде parentContainer.append (''); ' – markzzz

+0

Я имею в виду, после' elFrame = parentContainer.find ('iframe'); ' что дает вам 'console.log (elFrame);', iframe-элемент или пустой объект? Вы должны показать более соответствующий код кстати. –

ответ

1

Мое первое предположение заключается в том, что вы пытаетесь получить доступ к элементу iframe перед его созданием в html. Попробуйте использовать:

$(function(){ 
    elFrame = parentContainer.find('iframe'); 
    elFrame.load(function() { 
     elFrame.contents().find('body').css('background-color', 'red'); 
    }); 
}); 

Второе предположение о том, что «parentContainer» не прав, что делает IFrame недостижим. Как вы его получите? Какая это ценность?

+0

, исправленную с помощью elFrame.on ('load', function(), спасибо! Даже если я не знаю, почему это работает ... – markzzz

+0

@markzzz вы называете это после добавления iFrame? решение тогда. – Vogel612

+0

Да. Но почему с 'on' работает? – markzzz

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