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)

¿Fue útil?

Solución

Tienes que escribir en la acción

onbeforeunload Evento

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:

  1. onbeforeunload evento se disparará en cada una (elementos de anclaje) con el atributo href
  2. 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
  3. onbeforeunload evento se dispara en cualquier caso que utiliza javascript: pseudo-protocolo
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top