2010-03-26 7 views
9

Tengo una ventana emergente en la que un usuario inicia sesión, una vez que ha iniciado sesión exitosamente, tengo un mensaje que tiene un enlace para cerrar la ventana. Pero quiero que no solo cierre esa ventana emergente, sino que quiero que actualice la página web en la que se hizo clic en la ventana emergente.necesito actualizar la página web después de hacer clic en cerrar ventana emergente

De modo que la página puede actualizarse para ver que hay una sesión de inicio de sesión válida para ese usuario.

¿Es esto posible con jQuery?

+0

Si va a actualizar la página de esta manera, ¿por qué molestarse utilizando un pop-up/javascript que entrar en el primer lugar? ¿Por qué no tener controles de inicio de sesión en un lightbox como div y hacer que la página se publique? –

Respuesta

16

En la ventana emergente:

$('#closeButton').click(function(e) { 
    window.opener.location.reload(true); 
    window.close(); 
    e.preventDefault(); 
}); 

Vuelve a cargar la página principal y se cierra la ventana emergente.

+1

Devolver 'false' de un manejador es equivalente a llamar a' .preventDefault() 'y' .stopPropagation() 'en el objeto de evento. – Andy

+0

¡Funciona muy bien! gracias Señor. – user219628

2

Usted puede hacer esto:

window.location.reload() 

Simplemente dice javascript para recargar la página, esto no depende de jQuery.

0

Aquí hay un código que actualiza la ventana primaria y cierra la ventana emergente en una sola operación.

<script language="JavaScript"> 
<!-- 
function refreshParent() { 
    window.opener.location.href = window.opener.location.href; 

    if (window.opener.progressWindow) { 
    window.opener.progressWindow.close() 
    } 
    window.close(); 
} 
//--> 
</script> 
0

Utilice este código en ajaxlogin.js archivo para MVC 4 usuario

$('#closeButton').click(function(e) { 
    window.opener.location.reload(true); 
    window.close(); 
    e.preventDefault(); 
}); 

Su trabajo finas

0

funciona de manera eficiente para mí:

$(window).unload(function() { 
    if (!window.opener.closed) { 
     window.opener.__doPostBack('', ''); 
     e.preventDefault(); 
    } 
}); 
+1

En Firefox, el código no mostrará una casilla de confirmación que solicite ** "Para mostrar esta página, Firefox debe enviar información que repetirá cualquier acción (como una búsqueda o confirmación de pedido) que se haya realizado anteriormente". ** –

1
onclick="javascript:window.opener.location.reload(true);self.close();" 
Cuestiones relacionadas