Я нашел похожий вопрос, но принятый ответ не тот, который я хочу:
При использовании iframe в jquery.simplemodal перезагрузка iframe при закрытии всплывающего окна
Я хочу сначала динамически загрузить контент в iframe, затем, когда он завершит загрузку, использовать SimpleModal для его отображения. Моя проблема в том, что он, похоже, продолжает всплывать.
Я связал следующее с нажатием кнопки, и оно открывается нормально (хотя я не уверен, что содержимое iframe действительно загрузилось при его открытии), но после приятной анимации закрытия я вижу, что ajax запрос повторяется, и он снова открывается.
$.get('a/zong/299/' + number +"/", function(data) {
$(document.body).append('<iframe id="zong" src='+data+
' width="490" height="350" style="display:none;border:none;"></iframe>');
$('iframe#zong').load(function()
{
$('#zong').modal({
overlayCss: {backgroundColor:"#C4EFFF"},
containerCss:{
...
},
overlayClose:true,
onOpen: function(dialog){
dialog.overlay.fadeIn('slow', function(){
dialog.data.hide();
dialog.container.fadeIn('slow', function(){
dialog.data.slideDown('slow');
});
})
},
onClose: function(dialog){
dialog.data.fadeOut('slow', function(){
dialog.container.hide('slow', function(){
dialog.overlay.slideUp('slow', function(){
$.modal.close();
})
})
})
},
});
});
});
как видите, жизнь довольно сложна;) источник iframe должен быть сгенерирован на сервере, затем загружен iframe, который разрушается, когда диалог теряет фокус.
PS: Было бы неплохо, если бы stackoverflow мог делать авто-отступ для кода, вставленного при копировании, который длился вечно! ;)
Я пытался добавить $('#zong').attr('src', '');
внутри функции onClose, но все равно не повезло, модальный диалог возвращается из нежити. ;)
Спасибо за помощь!