У меня есть iframe с простой формой (предоставляется сторонним поставщиком). Содержимое iframe перезагружается после отправки формы со страницей подтверждения. На этой странице я попросил провайдера добавить этот скрипт:
<script type="text/javascript">
window.setTimeout(function(){
window.parent.postMessage('mailing_list_confirmation','http://originURL.com/');
},100) </script>
У меня в верхнем окне:
<script>
jQuery(function($) {
$(window).on('mailing_list_confirmation',function(){
console.log("iframe_message");
});
});
</script>
Ничего сложного. Я пробовал также с простой JS. Я попробовал это на моем локальном хосте (2 разных домена), и это работало хорошо. Разница была в том, что изначально был загружен iframe. В этом случае содержание iframe является новой страницей. Есть ли другая причина, по которой это может не сработать?