Al editar una página dentro de mi sistema, un usuario puede decidir navegar a otro sitio web y, al hacerlo, perder todas las ediciones que no ha guardado.
Me gustaría interceptar cualquier intento de ir a otra página y pedirle al usuario que se asegure de que quiere que esto suceda, ya que podría perder su trabajo actual.
Gmail hace esto de una manera muy similar. Por ejemplo, redacte un nuevo correo electrónico, comience a escribir en el cuerpo del mensaje e ingrese una nueva ubicación en la barra de direcciones (por ejemplo, twitter.com o algo). Le preguntará "¿Está seguro?"
Ideas de cómo replicar esto? Me dirijo a IE8, pero también me gustaría ser compatible con FF y Chrome.
javascript
javascript-events
internet-explorer
Chris Ballance
fuente
fuente
Respuestas:
Similar a la respuesta de Ghommey, pero esto también es compatible con versiones antiguas de IE y Firefox.
fuente
var foo, bar;
es lo mismo quevar foo;
var bar;
Vea este artículo. La característica que está buscando es onbeforeunload
Código de muestra:
fuente
En lugar de una ventana emergente de confirmación molesta, sería bueno retrasar el dejar solo un poco (cuestión de milisegundos) para administrar la publicación con éxito de los datos no guardados en el servidor, que administré para mi sitio escribiendo texto ficticio en la consola de esta manera:
Editar: consulte también Synchronous_AJAX y cómo hacerlo con jquery
fuente
SCHEDULED_REQUEST
es un objeto que acumula cualquier información no urgente que deba enviarse al servidor, como un búfer de datos, uniendo efectivamente múltiples solicitudes a una (por supuesto que la url de estas solicitudes es la misma). El uso de una solicitud Ajax sincrónica antes de la descarga debería resolver el problema entre navegadores como dijiste. ¡Gracias por tu valioso comentario!Tengo usuarios que no han completado todos los datos requeridos.
fuente