Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Evento onunload

Estas en el tema de Evento onunload en el foro de Javascript en Foros del Web. Hola a todos, por más vueltas que le doy no se como resolver un tema. Antes de salir de una página quiero realizar una serie ...
  #1 (permalink)  
Antiguo 11/03/2014, 02:33
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Evento onunload

Hola a todos, por más vueltas que le doy no se como resolver un tema.

Antes de salir de una página quiero realizar una serie de cuestiones, así que he empezado por realizar esta sencilla función que ya no me funciona:

</html>
<head>
...
</head>
<body onunload="abandono_pagina()">
...
</body>
...
<script type="text/javascript">
function abandono_pagina() {
alert('pp');
}
</script>
</html>

Si esto ya no me funciona, mal voy... agradecería comprender que hago mal porque esto debería ser muy sencillo...

Muchas gracias
__________________
Kike
  #2 (permalink)  
Antiguo 11/03/2014, 03:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Evento onunload

Código HTML:
Ver original
  1. ...
  2. <script type="text/javascript">
  3. function abandono_pagina() {
  4. alert('pp');
  5. }
  6. ...
  7.  
  8. </head>
  9. <body onunload="abandono_pagina()">
  10. ...
  11. </body>
  12. ...
  13.  
  14. </html>

Ojo que tenias

</html> en la primera fila
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 11/03/2014, 05:56
 
Fecha de Ingreso: diciembre-2013
Ubicación: España
Mensajes: 21
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Evento onunload

El primer fallo ya te lo ha corregido quimfv. Estabas intentando agregar al evento una función que todavía no habías cargado y hacía falta subir el script al head.

Para mi gusto lo recomendable sería después de crear la función al final del body, asignarle el evento mediante window.onunload, pero por lo visto el problema está que si bien en antiguos navegadores te lo permitía en los más recientes ya no, o al menos en algunos:

http://stackoverflow.com/questions/14645011/window-onbeforeunload-and-window-onunload-is-not-working-in-firefox-safari-o

No me he puesto a leerlo a fondo, pero supongo que es un punto por donde puedes investigar.
  #4 (permalink)  
Antiguo 11/03/2014, 06:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Evento onunload

Código HTML:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2. function abandono_pagina() {
  3. alert("ara");
  4. }
  5. </head>
  6. <body onbeforeunload="abandono_pagina();">
  7. <a href="index.htm">wewewe</a>
  8. </body>
  9. </html>


http://stackoverflow.com/questions/1...-not-available

otro link.... depende de lo que quieras hacer cuando cierras la pagina debes hacerlo justo antes de cerrar (onbeforeunload) o despues de cerrar (onunload).
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 11/03/2014, 09:52
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Evento onunload

Gracias a todos, el primer error solo era de transcripción, pero gracias de todas formas, lo que me ocurre es que no se me ejecuta la función, es decir, se me ejecuta el primer alert, pero nunca el segundo alert...

Alguien sabe porque ??? que es lo que hago mal ???

<html>
<head>
<script type="text/javascript">
alert('01');
function antesdesalir() {
alert('02');
}
</script>
</head>
<body onbeforeunload="antesdesalir">
...

Gracias.
__________________
Kike
  #6 (permalink)  
Antiguo 11/03/2014, 10:04
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Evento onunload

Too basic:

Código HTML:
Ver original
  1. <body onbeforeunload="antesdesalir()">

  #7 (permalink)  
Antiguo 11/03/2014, 10:35
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Evento onunload

Gracias pero no es eso, lo había probado con paréntesis, sin paréntesis, boca abajo, y nunca me muestra el segundo alert...

<html>
<head>
<script type="text/javascript">
alert('01');
function antesdesalir() {
alert('02');
}
</script>
</head>
<body onbeforeunload="antesdesalir()">
...
__________________
Kike
  #8 (permalink)  
Antiguo 11/03/2014, 10:37
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Evento onunload

Prueba vía scripting:

Código Javascript:
Ver original
  1. document.body.onbeforeunload = antesdesalir;

Saludos
  #9 (permalink)  
Antiguo 11/03/2014, 11:19
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Evento onunload

Me vas a perdonar, pero... donde lo pongo ???
__________________
Kike
  #10 (permalink)  
Antiguo 11/03/2014, 12:03
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Evento onunload

Muchas gracias a todos por vuestro tiempo y esfuerzo, ya lo he solucionado de otra forma.
__________________
Kike
  #11 (permalink)  
Antiguo 11/03/2014, 12:23
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Evento onunload

Cita:
Iniciado por enochap Ver Mensaje
Muchas gracias a todos por vuestro tiempo y esfuerzo, ya lo he solucionado de otra forma.
Se supone que debes indicar de qué forma lo solucionaste, a fin de que otras personas con el mismo problema les sirva de algo.
  #12 (permalink)  
Antiguo 11/03/2014, 15:44
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Evento onunload

Buenas noches, si es cierto, pero decidí no aportar la solución ya que no resolvía mi problema, de lo contrario de seguro huviera aportado la solución.

Me voy a explicar:

Estoy en un formulario y necesito irme a otra página para buscar un cliente... el problema es que al volver he perdido todos los datos tecleados en el primer formulario así que pedí ayuda y varios foreros me recomendaron guardar dichos valores en sesiones de usuario por lo que debía interceptar el abandono del formulario para guardar dichos datos.

Tras pasarme 3 días buscando código que supuesta-mente es muy pero que muy sencillo, y no conseguir que me funcionase,
Tras esto, decidí acudir a ustedes para ver que estaba pasando, y después de unos cuantos intentos más y 3 días de intentos frustrados... me he revisado el código una y otra vez, y al final, he visto que no era necesario interceptar dicho evento, debido a que para llamar a la página de la búsqueda de los clientes se hace con un simple enlace, lo he resuelto de la siguiente forma:

<img src="img/tpv_buscar_2.png" alt="Buscar" onclick="antesdesalir()">

Y esto si que funciona...

Luego dentro de esta función ya me hago lo que yo quiero.

Y es por eso que no he aportado la solución al no resolver mi propia pregunta inicial.

Gracias a todos y un saludo.
__________________
Kike

Etiquetas: evento, funcion, html
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 14:15.