Saltar al contenido

Cerrar Bootstrap modal desde dentro de iframe

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í

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *