Определить DOMContentLoaded в iframe
Я был удивлен, обнаружив, что следующее не работает, поскольку событие DOMContentLoaded не запускается (this.els
является объектом элементов).
this.els.stage_ifr.prop('src', 'templates/'+ee.globals.creating+'/item'+this.id);
this.els.stage_ifr[0].addEventListener('DOMContentLoaded', function() {
alert('loaded!');
}, false);
Страница загружается в iframe нормально, но обратного вызова нет. Уровень DOM нольonload
Однако работает.
this.els.stage_ifr[0].onload = function() { alert('loaded!'); }; //<-- fires
Обходной путь - подготовить глобально доступный отложенный объект jQuery на родительской странице и разрешить его с помощью события DOM-ready, инициированного со страницы, вызываемой в iframe, вместо прослушивания DOM-ready от родителя.
Страничка Паранта:
dfd = new $.Deferred;
dfd.done(function() { alert("frame page's DOM is ready!"); });
Рамка страницы:
$(function() { window.parent.dfd.resolve(); });
Тем не менее, было бы хорошо узнать, что случилось с первым подходом ...