Pedir confirmación en la página de descarga
-
20-09-2019 - |
Pregunta
En Stackoverflow cuando se está pidiendo una nueva pregunta, usted tiene entrar en la pregunta y si decide navegar fuera de la página aparece un "¿Estás segura" de confirmación.
Me gustaría hacer lo mismo en mi aplicación ASP.Net:
El usuario tiene que rellenar un cuestionario y tiene la opción de almacenar sus respuestas Temporalmente. Si el usuario decide navegar fuera de la página sin guardar Temporalmente sus respuestas nos gustaría una confirmación de ventanas emergentes y pedir al usuario almacenar sus respuestas.
Dos preguntas:
-
¿Cuál es una manera decente de mostrar la ventana emergente de confirmación antes de que la página se descarga en ASP.Net?
Soy consciente del evento beforeunload, pero no quiero que sea un gran truco javascript. -
No quiero la confirmación en arrancar cuando el usuario hace clic en el botón Guardar (que está salvando las respuestas de todos modos)
Solución
Tienes que escribir en la acción
que dispara antes de una página que está siendo descargado .
<HTML>
<head>
<script>
function closeIt()
{
return "Any string value here forces a dialog box to \n" +
"appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
<a href="http://www.microsoft.com">Click here to navigate to
www.microsoft.com</a>
</body>
</html>
Otros consejos
Se debe prestar atención en su caso "onbeforunload" En cuanto al botón Guardar sólo se puede hacer un poco de lógica de secuencias de comandos, por ejemplo, darse de baja en este caso o de lo contrario.
Puede intentar esto:
<button onclick="javascript:doSend()">send</button>
<button onclick="window.xbuttons +='save ';">save</button>
<button onclick="window.xbuttons +='edit';">edit</button>
<script>
window.xbuttons = '';
window.onbeforeunload = function(){
if(!window.xbuttons.match(/save|edit/))
return "Do you want to leave this page?";
}
</script>
Estas son las cosas que debe tener en cuenta sobre onbeforeunload:
- onbeforeunload evento se disparará en cada una (elementos de anclaje) con el atributo href
- onbeforeunload evento se disparará cuando la ubicación del documento es el cambio a través de JavaScript o cambiando la URL en la barra de direcciones
- onbeforeunload evento se dispara en cualquier caso que utiliza javascript: pseudo-protocolo