2012-05-14 2 views
2

У меня есть элемент div, содержащий некоторые iframe. Иногда я уничтожаю эти iframes и создаю новый, но мне всегда нужно знать, когда закончилась загрузка каждого из них (также добавленных позже). Я думал, что следующий код будет работать, но я ничего не запустил на консоль отладки. Любая помощь?Live Detect iframe page onload

// doesn't work 
    $('#viewport').on('load', 'iframe', function() { 
    console.log('LOADED!'); 
    return true; 
    }); 

    // doesn't work either 
    $('#viewport').on('ready', 'iframe', function() { 
    console.log('LOADED!'); 
    return true; 
    }); 
+0

' load' только для изображений, не так ли? – gdoron

+1

nope http://api.jquery.com/load-event/ он также работает для окон, фреймов, фреймов и d a like – pistacchio

+1

Попробуйте: '$ ('# viewport'). on ('load', function() { console.log ('LOADED!'); return true; }); ' – gdoron

ответ

0

Возможно, кадр завершает загрузку перед добавлением события.

Попробуйте добавить событие, прежде чем добавлять его в DOM.

var iframe = document.createElement("iframe"); 
// set iframe properties 
$(iframe).on('ready', 'iframe', function() { 
    console.log('LOADED!'); 
}); 
document.body.appendChild(iframe); 
0

Я вполне уверен, что это невозможно с помощью динамических фреймов. С сайтом JQuery (под устаревшую load() функции:

Примечания: The .live() и .delegate() методы не могут быть использованы для обнаружения события нагрузки на фрейме Событие нагрузки не правильно пузырька вверх. родительский документ и event.target не установлен Firefox, IE9 или Chrome, который требуется сделать делегирование событий.

я не могу получить подобный проект работать, либо.