Я могу запустить событие в области родительского окна из iframe и прослушать, но я не могу запустить событие из iframe в области Функция Iframe и слушать его в родительских окнах .. Например, в родительском окне, у меня есть IFRAME и некоторые JQuery код для прослушивания событий, запущенных в этом телеПожарайте событие jquery в iframe, запустите обратный вызов в родительском окне
<iframe id="myframe" src="/vf-install.php" width="500" height="500"></iframe>
jQuery('#myframe').contents().find("body").on('foo',function(){
alert('foo');
});
в IFRAME я огонь событие:
<script type="text/javascript">jQuery("body").trigger("foo");</script>
У меня не срабатывает мое событие. Как примечание стороны, я могу вызвать событие в родительском окне из фрейма, как это:
parent.jQuery("body").trigger("foo");
Это неприемлемо для меня, хотя. Обоснованием является vf-install.php, который включается через iframe, является установщиком для моей программы. Я пишу регрессионный тест с qUnit, который включает мой установщик в iframe, нажимает кнопку установки, а затем, когда установщик завершен (событие запущено), тест сделает утверждение. Таким образом, единственный раз, когда он включается через iframe, находится под контролем. Фактические пользователи вызывают страницу напрямую, и я не хочу, чтобы она запускала события в родительском окне, которого там нет.
Также в качестве примечания стороны я попытался подключить прослушиватель событий к телу iframe, когда вызывается функция load(), если это проблема, связанная с «живым запросом» (события не привязаны после того, как ajax изменяет страницу) :
jQuery('#myframe').load(function(){
// attach the event listener like above
});