Foros del Web » Programando para Internet » Javascript »

Enviar datos de ventana hija a padre con window.opener no funciona en Firefox

Estas en el tema de Enviar datos de ventana hija a padre con window.opener no funciona en Firefox en el foro de Javascript en Foros del Web. Hola a todos: Creo que este problema ya se ha planteado en varias ocasiones, de hecho ya revisé los post que existen y desafortunadamente no ...
  #1 (permalink)  
Antiguo 22/10/2010, 15:56
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Información Enviar datos de ventana hija a padre con window.opener no funciona en Firefox

Hola a todos:

Creo que este problema ya se ha planteado en varias ocasiones, de hecho ya revisé los post que existen y desafortunadamente no he solucionado mi problema, esto es lo que sucede:

Problema: Pasar datos de una ventana hija a una ventana padre.

Solución (solo me funciona en IE):

Ventana Padre:

Código:
<script language="javascript" type="text/javascript">

	function BuscarClave()
	{
		xpos=(screen.width/2)-200; 
		ypos=(screen.height/2)-215; 
		window.open('BuscarClave.asp','','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=350, left='+ xpos+', top='+ ypos);
	}

</script>

<form name="frmAlta" method="post">
<input type="text" name="txtClave" id="txtClave"/>&nbsp;&nbsp; <input type="button" value="Buscar Clave" onClick="javascript:BuscarClave();"/>
</form>
Ventana Hija:
Código:
<form name="frmClave" method="post">
<input type="text" name="hdnClave" value="12345"/> <a onClick="javascript:window.opener.document.frmAlta.txtClave.value = window.document.frmClave.hdnClave.value;window.close();">Agregar Clave</a>
</form>
esta solución al probarla en IE funciona sin problemas, pero cuando la pruebo el Chrome, Opera y Firefox no me funciona, viendo los post que existen al respecto he seguido la forma de las 4 instancias que hay que seguir a rajatabla en estos casos: window.opener (ventana padre), .document (documento html), .formulario (form), .resultado (input text) de igual forma ya revise la consola de errores de Firefox y me dice lo siguiente:

window.opener.document.frmAlta is undefined cosa que no entiendo pues ese formulario si lo tengo definido...

siendo así ¿alguien podría apoyarme en donde esta mi error...?

Saludos y muchas gracias!
  #2 (permalink)  
Antiguo 22/10/2010, 16:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

intenta esto. al segundo parámetro de window.open dale un valor (popup). en el vinculo usa target="popup" y href="#"
  #3 (permalink)  
Antiguo 22/10/2010, 16:44
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

Hola IsaBelM

De antemano gracias por responder el post, mmm no sé si entendí mal mira te pongo el código con la modificación que me sugeriste realizar:

Ventana padre:
Código:
<script language="javascript" type="text/javascript">

	function BuscarClave()
	{
		xpos=(screen.width/2)-200; 
		ypos=(screen.height/2)-215; 
		window.open('BuscarClave.asp','popup','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=350, left='+ xpos+', top='+ ypos);
	}

</script>

<form name="frmAlta" method="post">
<input type="text" name="txtClave" id="txtClave"/>&nbsp;&nbsp;
<input type="button" value="Buscar Clave" onClick="javascript:BuscarClave();"/>
</form>
Ventana hija:
Código:
<form name="frmClave" method="post">
<input type="text" name="hdnClave" value="12345"/>
<a href="#" onClick="javascript:window.opener.document.frmAlta.txtClave.value = window.document.frmClave.hdnClave.value;window.close();" target="popup">Agregar Clave</a>
</form>
aún con eso sigue sin funcionarme en Firefox, Chrome y Opera, para IE funciona bien... ¿alguna otra idea de qué pueda ocasionar el error...?

Saludos y nuevamente muchas muchas gracias!
  #4 (permalink)  
Antiguo 23/10/2010, 05:24
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

inténtalo ahora
padre
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  
  3.     function BuscarClave()
  4.     {
  5.         xpos=(screen.width/2)-200;
  6.         ypos=(screen.height/2)-215;
  7.         window.open('BuscarClave.asp','popup','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=350, left='+ xpos+', top='+ ypos);
  8.     }
  9.  
  10. </script>
  11. </head>
  12. <body>
  13. <form name="frmAlta" method="post">
  14. <input type="text" name="txtClave" id="txtClave"/>&nbsp;&nbsp;
  15. <input type="button" value="Buscar Clave" onClick="BuscarClave();"/>
  16. </form>
hija
Cita:
<form name="frmClave" method="post">
<input type="text" name="hdnClave" value="12345"/>
<a href="#" target="popup" onClick="window.opener.document.frmAlta.txtClave.v alue = window.document.frmClave.hdnClave.value;window.close();"> Agregar Clave</a>
</form>
lo que te he marcado en rojo, sobra. también te he quitado javascript al invocar a la función, no es necesario
  #5 (permalink)  
Antiguo 28/10/2010, 09:09
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

Que tal IsaBelM

Pues seguí tu 2ª sugerencia y me sigue aventando el mismo error

window.opener.document.frmAlta is undefined

Es frustante por que siguiendo la lógica del error que me tira pues ese FORM si esta definido...

¿Alguna otra solución que se te ocurra...?

Saludos y muchas gracias por tu ayuda!
  #6 (permalink)  
Antiguo 28/10/2010, 12:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

lo he ejecutado y funciona
  #7 (permalink)  
Antiguo 03/11/2010, 13:13
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

Hola IsabelM:

Fíjate que se me paso comentarte algo importante, en realidad la solución que me diste si funciona correctamente pero ahora veo por cuestiones de funcionalidad de este sistema que necesito manejar una ventana hija más y esto es por que en la ventana hija 1 realizo una busqueda a la Base de Datos y de ahi me envía "n" claves lo que estoy intentando hacer es que al seleccionar alguna clave me mande a otra ventana hija donde me muestre el detalle de esa clave y ya en esa ventana hija 2 seleccione enviar la clave a la ventana padre ¿no sé si me explique... ?

Creo que el problema que tengo no es precisamente pasar los datos de la ventana hija 2 a la ventana padre, sino que de la ventana hija 1 no se cómo abrir la ventana hija 2 en la misma ventana, ya intente con "_self" pero no me lo respeta, siempre me manda la ventana hija 2 a una ventana nueva

Ventana Padre:
Código:
<script type="text/javascript">
 
    function BuscarClave()
    {
        xpos=(screen.width/2)-200; 
        ypos=(screen.height/2)-215; 
        window.open('BuscarClave.asp','popup','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=350, left='+ xpos+', top='+ ypos);
    }
 
</script>
</head>
<body>
<form name="frmAlta" method="post">
<input type="text" name="txtClave" id="txtClave"/>&nbsp;&nbsp;
<input type="button" value="Buscar Clave" onClick="BuscarClave();"/>
</form>

Ventana Hija 1:
Código:
function AgregaClave()
	{
		window.opener.document.frmAlta.txtClave.value = window.document.frmClave.hdnClave.value; 
		window.close();
	}

<form name="frmClave" method="post">

<a onClick="javascript: window.open('DetalleClave.asp?clave=12345','provee','_self');"> Ver Detalle de Clave</a>

<input type="hidden" name="hdnClave"/>
</form>

Ventana Hija 2:
Código:
Clave = Request("clave")
<form name="frmDetalle">
<input type="text" name="hdnClave" value="<%=Clave%>"/>
<a href="#" target="provee" onClick="window.opener.document.frmClave.hdnClave.value = document.frmDetalle.hdnClave.value;window.opener.AgregaClave();window.close();">Agregar Clave</a>
</form>

Ojalá puedas entender lo que pretendo hacer y como te lo dije antes los datos los paso si problemas solo es que no se ve muy estetico que digamos pasar de la ventana hija 1 a la ventana hija 2 en una ventana nueva...

Ruego por que puedas ayudarme al respecto,

Saludos y muchas pero muchas gracias!
  #8 (permalink)  
Antiguo 03/11/2010, 13:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

para ello tienes el target, creo que en este caso funcionará. cambia window.open('DetalleClave.asp?clave=12345','provee','_self') por window.open('DetalleClave.asp?clave=12345','popup')
  #9 (permalink)  
Antiguo 03/11/2010, 19:05
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

Que tal IsabelM:

Ya hice lo que me sugeriste y ahora me manda el siguiente mensaje de error:

window.opener.document.frmClave is undefined


no sé por qué...
  #10 (permalink)  
Antiguo 04/11/2010, 07:55
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

seguro que no te he entendido. es indefinido puesto que hija1 ya no existe. cuando abres la ventana hija1, a esa ventana se le asigna el nombre popup. ahora para poder abrir la ventana hija2 en esa misma ventana y no crear otra, se ha de destruir la primera ventana, es decir; hija1. entonces, para poder pasar el valor de hija2 a hija1, han de ser dos ventanas
  #11 (permalink)  
Antiguo 04/11/2010, 13:51
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Enviar datos de ventana hija a padre con window.opener no funciona en Fire

Que tal IsabelM:

Ya corregí el problema, adecué la solución que me diste y simplemente utilice el target="popup" poniendolo como me dijiste...

De verdad agradezco mucho toda la ayuda que me diste...

Saludos cordiales

Etiquetas: firefox, opener, window
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 08:32.