Foros del Web » Programando para Internet » Javascript »

Llamar una funcion desde otro frame

Estas en el tema de Llamar una funcion desde otro frame en el foro de Javascript en Foros del Web. Tengo una funcion definida en un frame, pero no se si se puede llamar a dicha funcion desde otro frame distinto :( Gracias de antemano...
  #1 (permalink)  
Antiguo 20/05/2006, 12:00
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Llamar una funcion desde otro frame

Tengo una funcion definida en un frame, pero no se si se puede llamar a dicha funcion desde otro frame distinto :(

Gracias de antemano
  #2 (permalink)  
Antiguo 20/05/2006, 12:11
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Linue

Prueba así:

top.nombreFrame.tufuncion();

Saludos,
  #3 (permalink)  
Antiguo 20/05/2006, 13:49
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Gracias por la ayuda JavierB...

Pero no me funciona
  #4 (permalink)  
Antiguo 20/05/2006, 16:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Si no me equivoco, la forma que indica JavierB (¡Hola ) es correcta... Si hay otro tipo de anidamiento puede valer parent.nombreFrame.tufuncion();

... en el caso de que se tratase de un frame dentro de otro sistema de marcos...

Si no te vale, será mejor que indiques el nivel de anidamiento de marcos que estás usando... también ten en cuenta que los frames y los iframes son distintos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 20/05/2006, 16:25
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Son dos marcos. Desde el derecho llamo a una funcion del izquierdo

son frames
  #6 (permalink)  
Antiguo 20/05/2006, 16:26
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Cita:
Iniciado por Linue
Son dos marcos. Desde el derecho llamo a una funcion del izquierdo con un button

son frames
  #7 (permalink)  
Antiguo 20/05/2006, 16:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Pues tanto el ejemplo que te dio JavierB o el que yo te dí te tiene que valer...
¿Tienes definido bien el nombre del marco?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 20/05/2006, 16:38
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Pues... si, esta bien puesto el nombre, como no este mal puesto el onclick del boton...

tengo onclick="parent.elmarco.funcion()"
  #9 (permalink)  
Antiguo 21/05/2006, 03:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Pon el código de los frames, a ver si pillamos dondes está el fallo.

Saludos,
  #10 (permalink)  
Antiguo 21/05/2006, 03:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por JavierB
Hola de nuevo.

Pon el código de los frames, a ver si pillamos dondes está el fallo.

Saludos,
Si, será lo mejor...

Te muestro un ejemplo básico que funciona como te hemos explicado...

Página de marcos:
Código:
<html>
<frameset cols="50%,*">
	<frame name="izq" src="izq.html" >
	<frame name="der" src="der.html" >
</frameset>
</html>
izq.html:
Código:
<html>
<head>
<script>
function funcion(v)	{
	alert(v);
}
</script>
</head>
<body>
<button onclick="funcion(window.name)">ventana</button>
</body>
</html>
der.html:
Código:
<html>
<body>
<button onclick="parent.izq.funcion(window.name)">ventana</button>
</body>
</html>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 21/05/2006, 08:58
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Los frames

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
<
titlePagina Principal</title>
</
head>
<
frameset cols="225,*">
 <
frame src="prueba.html" name="datos" >
 <
frame src="teclado.html"  name="juego">
</
frameset>
</
html
El boton que llama a la otra funcion que esta en prueba

Código PHP:
<P>
<
INPUT TYPE "button"
   
NAME "AJugar"
   
VALUE "Jugar"
   
onclick "parent.teclado.init()" >
</
P
¿tambien subo el init?
  #12 (permalink)  
Antiguo 21/05/2006, 09:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por Linue
Los frames

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
<
titlePagina Principal</title>
</
head>
<
frameset cols="225,*">
 <
frame src="prueba.html" name="datos" >
 <
frame src="teclado.html"  name="juego">
</
frameset>
</
html
El boton que llama a la otra funcion que esta en prueba

Código PHP:
<P>
<
INPUT TYPE "button"
   
NAME "AJugar"
   
VALUE "Jugar"
   
onclick "parent.teclado.init()" >
</
P
¿tambien subo el init?
... No es necesario, ya se ve el error...
Detrás de parent (o top) debes poner el nombre del marco (lo que hay en el atributo name del tag frame del frameset...)

solo puede valer datos o juego y tu usas teclado (teclado.html es el nombre del fichero pero no es el nombre del marco)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 21/05/2006, 09:48
Avatar de Linue  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Muchas gracias a los dos. Ya funciona
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 00:32.