Solución:
Siempre puede crear una función de acceso global que cierre la ventana modal de Bootstrap.
p.ej.
window.closeModal = function(){
$('#iframeModal').modal('hide');
};
Luego, desde el iframe, llámelo usando:
window.parent.closeModal();
El problema es que los eventos de jQuery se están registrando con la instancia de jQuery de la página individual. Entonces, $('#iframeModal', window.parent.document).modal('hide');
en realidad va a activar el evento hide en el iframe, no en el documento principal.
Esto debería funcionar: parent.$('#iframeModal').modal('hide');
Esto usará la instancia de jQuery del padre para encontrar el elemento (por lo que no se necesita contexto), y luego activará el evento correctamente en el padre.
Una solución más en caso de que no lo sepas id
de modal que utilizan iframe
:
Agregar función CerrarModal
function CloseModal(frameElement) {
if (frameElement) {
var dialog = $(frameElement).closest(".modal");
if (dialog.length > 0) {
dialog.modal("hide");
}
}
}
dónde frameElement
es referencia a iframe
contenedor de elementos.
Y este parámetro se puede pasar desde iframe
al igual que:
window.parent.CloseModal(window.frameElement);
Más sobre window.frameElement
puedes encontrar aquí