Foros del Web » Programando para Internet » Javascript »

Problema con OnBeforeUnload

Estas en el tema de Problema con OnBeforeUnload en el foro de Javascript en Foros del Web. Hola, Tengo un problema a la hora de usar OnBeforeUnload, quiero mostrar un mensaje cuando salgo de una pagina determinada (voy hacia otra página distinta) ...
  #1 (permalink)  
Antiguo 14/05/2012, 12:15
Avatar de randoss  
Fecha de Ingreso: noviembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 1
Problema con OnBeforeUnload

Hola,
Tengo un problema a la hora de usar OnBeforeUnload, quiero mostrar un mensaje cuando salgo de una pagina determinada (voy hacia otra página distinta) avisando de que podría perder los datos.

Lo único que quiero controlar, que sólo me avise cuando se sale de dicha página (no cuando se recarga), como puedo controlarlo? Hay alguna forma de saber a la página hacia la que voy y así actuar en consecuencia?

Muchas Gracias.
  #2 (permalink)  
Antiguo 14/05/2012, 12:33
Avatar de blittcer  
Fecha de Ingreso: noviembre-2007
Mensajes: 125
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Problema con OnBeforeUnload

Osea solo cuando vas a salir a una pagina externa no a los enlaces de la propia web no? a mi también me interesa justo eso. pero con el evento onUnload que es cuando ya saltes de la pagina que creo...

La verdad es que no se como hacer esto justo estaba buscándolo.
  #3 (permalink)  
Antiguo 14/05/2012, 12:36
Avatar de randoss  
Fecha de Ingreso: noviembre-2011
Mensajes: 16
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Problema con OnBeforeUnload

No exactamente, cualquier tipo de enlace, externo o interno, pero no cuando se recarga la propia página.

Pero vamos, que lo quiero controlar es hacia donde se está redirigiendo mi página, y así poder ponerle una condición de que si es distinta a la que estoy, que me muestre el aviso.
  #4 (permalink)  
Antiguo 14/05/2012, 13:01
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con OnBeforeUnload

La idea es advertir al usuario si inició una acción, como el ingreso de datos en un form, he intenta abandonar la página sin haberlos procesados, si no no pasa de ser un mensaje molesto. Por lo que habría que crear una condición, este ejemplo a lo mejor te oriente para buscar una solución

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var datosSinProcesar ;
  10. window.onbeforeunload = Salir;  
  11. function Salir(){    
  12. if (datosSinProcesar == 1) {
  13. return "Si has hecho algun cambio sin guardar se perderan todos los datos.";  
  14. }
  15. }
  16.  
  17. function deja_var(a){
  18. if(a == 'si'){
  19. datosSinProcesar = 1;
  20. }else{
  21. datosSinProcesar = 0;
  22. }
  23. }
  24. //]]>
  25. </head>
  26. <form action="#" onsubmit="return deja_var('no');">
  27. <input type="text" onkeypress="deja_var('si');" value="" />
  28. <input type="submit" />
  29. </form>
  30. </body>
  31. </html>

Puede mejorarse controlando los valores de los campos. Pero basicamente la idea sería esa. Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 14/05/2012, 13:08
Avatar de blittcer  
Fecha de Ingreso: noviembre-2007
Mensajes: 125
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Problema con OnBeforeUnload

Cita:
Iniciado por randoss Ver Mensaje
No exactamente, cualquier tipo de enlace, externo o interno, pero no cuando se recarga la propia página.

Pero vamos, que lo quiero controlar es hacia donde se está redirigiendo mi página, y así poder ponerle una condición de que si es distinta a la que estoy, que me muestre el aviso.
Pero de todas formas si estás en la propia página y recargas se te perderían los datos... por lo menos si a recargar te refieres con un actualizar (F5).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.