Определить 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(); });

Тем не менее, было бы хорошо узнать, что случилось с первым подходом ...

Ответы на вопрос(3)

Ваш ответ на вопрос