Bueno, esta es otra solución que algunos de ustedes podrían estar buscando (como yo ...)
Mi problema era similar, el cuadro modal se estaba cerrando mientras el iframe que tenía dentro se estaba cargando, por lo que tuve que deshabilitar el descarte modal hasta que el Iframe termine de cargarse y luego volver a habilitarlo.
Las soluciones presentadas aquí no funcionaban al 100%.
Mi solución fue esta:
showLocationModal = function(loc){
var is_loading = true;
if(is_loading === true) {
is_loading = false;
var $modal = $('#locationModal');
$modal.modal({show:true});
// prevent Modal to close before the iframe is loaded
$modal.on("hide", function (e) {
if(is_loading !== true) {
e.preventDefault();
return false
}
});
// populate Modal
$modal.find('.modal-body iframe').hide().attr('src', location.link).load(function(){
is_loading = true;
});
}};
Entonces evito temporalmente que el Modal se cierre con:
$modal.on("hide", function (e) {
if(is_loading !== true) {
e.preventDefault();
return false
}
});
Pero con var is_loading que volverá a habilitar el cierre después de que se cargue el Iframe.