Quiero hacer una confirmación antes de que el usuario abandone la página. Si dice que está bien, redirigirá a una nueva página o cancelará la partida. Traté de hacerlo con onunload
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
¿Pero se confirma después de que la página ya está cerrada? ¿Cómo hacerlo correctamente?
¿Sería aún mejor si alguien muestra cómo hacerlo con jQuery?
javascript
jquery
kd7
fuente
fuente
Respuestas:
onunload
(oonbeforeunload
) no puede redirigir al usuario a otra página. Esto es por razones de seguridad.Si desea mostrar un aviso antes de que el usuario abandone la página, use
onbeforeunload
:O con jQuery:
Esto solo le preguntará al usuario si desea abandonar la página o no, no puede redirigirlos si selecciona permanecer en la página. Si eligen irse, el navegador irá a donde le dijeron que fuera.
Puedes
onunload
hacer cosas antes de que la página se descargue, pero no puedes redirigir desde allí (Chrome 14+ bloquea las alertas dentroonunload
):O con jQuery:
fuente
onbeforeunload
, el navegador coloca esa cadena en su propio cuadro de confirmación. Usarconfirm
es inútil en ,onunload
yonbeforeunload
porque solo el navegador puede controlar dónde va, no tú. Echa un vistazo a esta demostración: jsfiddle.net/3kvAConbeforeunload
,return false
hará que el navegador muestre "falso" en un cuadro de diálogo. Debe hacerloreturn undefined
si desea dejar que la ventana se cierre sin alerta de usuario.Este código cuando también detecta que el estado del formulario cambió o no.
Puede Google JQuery Form Serialize función, esto recopilará todas las entradas de formulario y guardarlo en la matriz. Supongo que esta explicación es suficiente :)
fuente
Esto alertará al salir de la página actual
fuente
Esto es lo que hice para mostrar el mensaje de confirmación justo cuando tengo datos no guardados
devolver "indefinido" deshabilitará la confirmación
Nota: devolver "nulo" no funcionará con IE
También puede usar "indefinido" para deshabilitar la confirmación
fuente
Para tener un popop con Chrome 14+, debes hacer lo siguiente:
Se le preguntará al usuario si quiere quedarse o irse.
fuente
jQuery(document)
y sugiero que lo coloques justo después de cargar todos tus complementos. Además, este fragmento no hace ninguna alerta ... es solo una demostración conreturn
.Puede usar el siguiente one-liner para preguntar siempre al usuario antes de abandonar la página.
Para preguntarle al usuario cuándo se ha modificado algo en la página, consulte esta respuesta .
fuente
Normalmente desea mostrar este mensaje, cuando el usuario ha realizado cambios en un formulario, pero no se guardan.
Tome este enfoque para mostrar un mensaje, solo cuando el usuario haya cambiado algo
fuente
https://www.w3schools.com/tags/ev_onbeforeunload.asp
fuente
La mayoría de las soluciones aquí no funcionaron para mí, así que utilicé la que se encuentra aquí
También agregué una variable para permitir el cuadro de confirmación o no
fuente
Solo un poco más útil, habilita y deshabilita
fuente