Foros del Web » Programando para Internet » Javascript »

Llamar a funcion de unm frame, desde otro frame

Estas en el tema de Llamar a funcion de unm frame, desde otro frame en el foro de Javascript en Foros del Web. Hola de nuevo Mi pagina tiene varios frames, en el frame[2], esta el menu, y ahi mismo toda la logica de la pagina, escribiendo en ...
  #1 (permalink)  
Antiguo 18/11/2004, 09:35
Avatar de saxer  
Fecha de Ingreso: noviembre-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
Llamar a funcion de unm frame, desde otro frame


Hola de nuevo

Mi pagina tiene varios frames, en el frame[2], esta el menu, y ahi mismo toda la logica de la pagina, escribiendo en el resto de los frames (con window.paren.frame[x].document.write() ), dependiendo de la accion en el menu de navegacion del frame[2].
ahora bien, en el frame[1], cree un FORM (desde el frame[2]) con un boton, que lo que deveria hacer es llamar a una funcion del frame[2] (donde esta el menu)
el problema es que, todo esta definido en el frame[2], y creo que... cuando creo el FORM para el frame[1], este pierde la relacion de las funciones del frame[2], y no las ejecuta...

Ejemplo:

Logica en el FRAME[2]
...
function Mostrar_100() {
window.open("pepe.html","Ventana","width=120,heigh t=300,scrollbars=NO")
}
window.parent.frames[1].document.write('<form name="Agrandar">')
window.parent.frames[1].document.write('<INPUT type="button" name="FotoG" value="100%" onClick="Mostrar_100()">')
window.parent.frames[1].document.write('</FORM>')

...

Si bien, todo esta declarado en el mismo JavaScript, el FORM se esta escribiendo en el FRAME[1], y desde el frame[1] no llego e ver la funcion de frame[2].

Intente varias cosas, como por ejemplo, llamar a la funcion indicando donde esa

window.parent.frames[1].document.write('<INPUT type="button" name="FotoG" value="100%" onClick="parent.frame[2].Mostrar_100()">')

o window.parent.frame[2].document.Mostrar_100()
o window.parent.frame[2].document.javascript:Mostrar_100()

Me canse de probar opciones y recibo diferenbtes errores, o cuando no tengo errores, no pasa nada al precionar el boton en el frame[1]

Se me ocurrio cargar un java script externo, con la funcion que quiero, dentro del frame[1] (antes del FORM, en el head, claro), y asi poder llamarla, pero me da error de sintaxis...
algo asi

window.parent.frames[1].document.writeln('<script language="JavaScript" src="detalle_2.js"></script>')

esto me da error, como que faltaran comillas o algo, porque me destartala todo el codigo que sigue abajo

Bueno, espero haber sido claro :)
Gracias a todos
Daniel
  #2 (permalink)  
Antiguo 18/11/2004, 10:37
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 11 meses
Puntos: 38
Hola Daniel.

Comprendo perfectamente el problema, mas no veo el error.

Yo he hecho cosas similares y me han funcionado correctamente (de hecho puedes ver esto: http://www.universitasdeseguros.com/Pages/ieCotHC.htm) que esta hecho bajo el mismo principio. Lo único es que yo no he puesta las funciones en el frame que genera sino directo en el parent.

Trata de mover las funciones al parent y llámalas con parent.funcion() a ver si hay cambios.

Saludos.
  #3 (permalink)  
Antiguo 18/11/2004, 10:39
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
En el caso de
Código PHP:
window.parent.frames[1].document.writeln('<script language="JavaScript" src="detalle_2.js"></script>'
Puede ser que tengas que enmascararlo tipo
Código PHP:
window.parent.frames[1].document.writeln('<sc' 'ript language="JavaScript" src="detalle_2.js"></scri' 'pt>'
o "escapando" el último </script>
Código PHP:
window.parent.frames[1].document.writeln('<script language="JavaScript" src="detalle_2.js"><\/script>'
Según que navegadores se creen que estás intentando poner un script dentro de otro script.
  #4 (permalink)  
Antiguo 18/11/2004, 11:04
Avatar de saxer  
Fecha de Ingreso: noviembre-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
Kaopectate
Que Campeon!!!
no me canso de decir, lo simple es Vello!!!
me funciona con tu sujerencia
Muchas GRacias!!!

Pintix
yo suponia que me lo rechasaba porque pensaba que ponia un script dentro de otro, y la solucion que me das me parece muy buena
GRacias!!!

Gracias GENTE!!!!
Beijinhos
Daniel

Última edición por saxer; 18/11/2004 a las 11:08
  #5 (permalink)  
Antiguo 18/11/2004, 11:09
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 11 meses
Puntos: 38
Bien, me alegro que funcionara.

Saludos.
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 03:08.