Bir sayfada iframe içerisindeki kendi oluşturduğumuz bir olay tetiklendiğinde bu olayı normal yollarla yakalamamız mümkün değil(ya da ben bilmiyor olabilirim). Normal yoldan derken ne demek istediğimi hemen bir örnek ile göstereyim.

$('form').on('myCustomEvent',function(){
    // felan filan
}); 

Zaten üstteki kod ile iframe içerisindeki elementi seçemeyiz sadece görmeniz için yazdım. Yukarıdaki kodu hiç yazmamışım kabul edip okumaya devam edelim lütfen.

Bir iframe içerisindekilere erişmek için jquery contents() metodunu kullanıyoruz. Fakat bu yolla iframe içerisinde seçtiğimiz bir objenin kendi atadığımız bir olayını yakalayamıyoruz. Yine bu yol içinde örnek bir kod verelim.

var iframeObj = $('#iframe');	
iframeObj.load(function(){		
	iframeObj.contents().find('form').on('myCustomEvent',function(){
		alert('contents().find("form") => iframe içerisinde myCustomEvent tetiklendi fakat buradaki kod işlemedi. Çünkü bu olay yakalanamadı');
	});
});

Bu sorunu çözmek için olayı iframe içerisindeki element yerine top.document'e atayacağız. Şöyleki:

iframe içerisindeki script

$('form').on('submit',function(){
    // ikinci parametre ile olaya göndermek istediğimiz parametreleri bir dizi içerisinde gönderebiliriz.
    var data1 = 'test1';
    var data2 = 'test2';
    top.$(top.document).trigger('myCustomEvent',[data1, data2]);
});

 iframe'in bulunduğu dosyadaki script

top.$(top.document).on('myCustomEvent',function(e,data1, data2){
	alert('top.document =>  iframe içerisinde myCustomEvent tetiklendi ve bu kod çalıştı. Data1 = ' + data1 + ' | Data2 = ' + data2);
});

Tam olarak problemi ve çözümü anlatamamış olabilirim kusura bakmayın. Bundan dolayı demoyu incelemenizi tavsiye ederim.

İyi çalışmalar.

Demo