2012-04-25 52 views
39

¿Cómo solicitar la confirmación del usuario antes de abandonar la página como en gmail?Confirmación antes del cierre de la pestaña/navegador

Busqué esta pregunta en varios lugares, pero todo lo que se menciona es el uso de JavaScript window.unload & window.onbeforeunload. Tampoco funciona en Chrome la mayoría de las veces, ya que se bloquea.

+1

y ¿qué has probado? ¿Qué falla? – Joseph

+0

Intenté window.unload & window.onbeforeload pero no funcionaron según lo requerido. –

+0

posible duplicación de [Confirmar casilla antes de cerrar una pestaña] (http://stackoverflow.com/questions/2452963/confirm-box-before-closing-a-tab) –

Respuesta

74

Prueba esto:

<script> 
window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
     e.returnValue = 'Sure?'; 
    } 

    // For Safari 
    return 'Sure?'; 
}; 
</script> 

Aquí es un trabajo jsFiddle

+1

también esto no será deshabilitado por cualquier navegador ya que se origina en el usuario haga clic en – gopi1410

+0

¡Muchas gracias! esto es lo que necesitaba. Por cierto, amo la demostración de violín, exactamente lo que quería. –

+0

Hola ... su código funciona, pero no puede diferenciar si el usuario ha hecho clic en el botón Cerrar del navegador o ha hecho clic en el botón de navegación para ir a otra página. – user3217843

6

Prueba esto:

<script> 
    window.onbeforeunload = function(e) { 
     return 'Dialog text here.'; 
    }; 
</script> 

más información aquí MDN.

1

He leído los comentarios sobre la respuesta establecido como Okay. La mayoría de los usuarios están pidiendo que se permita el botón y algunos enlaces. Aquí se agrega una línea más al código existente que funcionará.

<script type="text/javascript"> 
    var hook = true; 
    window.onbeforeunload = function() { 
    if (hook) { 

     return "Did you save your stuff?" 
    } 
    } 
    function unhook() { 
    hook=false; 
    } 

desenganche de llamadas() onclick botón y enlaces, que desea permitir. P.ej.

<a href="#" onClick="unhook()">This link will allow navigation</a> 
Cuestiones relacionadas