Foros del Web » Programando para Internet » Javascript »

Parece que se dispara evento onunload

Estas en el tema de Parece que se dispara evento onunload en el foro de Javascript en Foros del Web. El problema que tengo es que quiere enviar un formulario de forma invisible cuando se descargue un pagina (onunload) o se pulse en un link ...
  #1 (permalink)  
Antiguo 12/11/2010, 04:15
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 4 meses
Puntos: 32
Parece que se dispara evento onunload

El problema que tengo es que quiere enviar un formulario de forma invisible cuando se descargue un pagina (onunload) o se pulse en un link que llama a la misma función (compra_ok();). El problema es que parece que se carga la página pero se cierra y no envía el formulario. Sí te devuelve al sitio correcto.

En la función inicio lo único que hace es rellenar literales y poner imagenes en partes del form.

Código HTML:
function inicio_ok(){
inicio();
}
Esta función envía el formulario a través de un iframe.

Código HTML:
function enviar_form_pers(){
	document.form_pers.action="http://www.dominio.com/pagina.php";
	document.form_pers.target="envio_form";
        document.form_pers.submit();
}
Esta función envía el formulario y luego te reenvía a la página padre con el GET correspondiente.

Código HTML:
function compra_ok()
{
	enviar_form_pers();
        window.opener.location.href="http://www.dominio.com/pagina.php?id=123";
        window.opener.focus();
        window.close();
}
En el body tengo puesto esto:

Código HTML:
<body onload="inicio_ok();" onunload="compra_ok();"> 
El formulario es:

Código HTML:
<form name="form_pers" method="POST" enctype="application/x-www-form-urlencoded">
<input name="a"  	type=hidden value="a">
<input name="b" 	type=hidden value="b">
<input name="c"	type=hidden value="c">
<input name="d"	type=hidden value="d">
</form>
<iframe name="envio_form" style="position:absolute; top:-1500px;"></iframe> 
Y tengo un link que llama a la función compra_ok();

Código HTML:
<a id="aceptar" onclick="compra_ok();"><img src="../images_012137022/images/btn_tpv_aceptar1.gif" id="img_aceptar" /></a> 
  #2 (permalink)  
Antiguo 12/11/2010, 08:24
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Parece que se dispara evento onunload

Supongo que será porque onunload se ejecuta cuando la página ya se ha descargado, y por tanto la información del form no existe. Prueba con onbeforeunload.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 19/11/2010, 02:51
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 4 meses
Puntos: 32
Respuesta: Parece que se dispara evento onunload

Cita:
Iniciado por _cronos2 Ver Mensaje
Supongo que será porque onunload se ejecuta cuando la página ya se ha descargado, y por tanto la información del form no existe. Prueba con onbeforeunload.
Saludos (:
Perfecto, gracias.

Etiquetas: eventos
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 01:17.