URGENTE por favooor

Cuento: Tengo una pagina con frames. En esa página, al frame del centro le he llamado principal. Ese frame tiene el codigo para abrir un popup llamado form. A parte, ese mismo frame, también tiene funciones para enviar una cookie (para que el popup no se vuelva a abrir).
¿Cuál es el código para hacer que desde el popup (form) me llame a la función de la cookie (poner_galleta()) que está en el frame (principal)?
Sé que para que desde un popup se llame a una función de la página desde la cual se abre se utiliza 'top. Función()'. Pero cuando hay frames ya me pierdo.

1 respuesta

Respuesta
1
prueba a llamar a la función con window. Opener. Poner_galleta() desde el popup
¿Me podrías decir para que sirve cada uno?(window, opener) Por que es que no me funciona. ¿Cómo va a saber el ordenador en que frame esta la función si no se lo indicas?
Cuando abres una ventana para que haga de popup con window. Open, esa ventana tiene una referencia (window. Opener) a la ventana o frame desde la que se abrió.
Por ahí, si la función no la abriste desde el mismo frame, puedes ir subiendo de frames con parent.
Por ejemplo:
indice.html:
<frameset rows="50%,*">
<frame src="hola1.html" name="UNO">
<frame src="hola2.html" name="DOS">
</frameset>
hola1.html:
<html>
<body>
<script> window.open("hola3.html","_blank");</script>
</body>
</html>
hola2.html:
<html>
<body>
<script>
function hola()
{
alert ("hola");
}
</script>
</body>
</html>
hola3.html:
<html>
<body>
<form name="pp">
<input type="button" value="Pulsa para decir hola" onclick="window.opener.parent.DOS.hola();">
</form>
</body>
</html>
Hace lo siguiente:
Crea dos frames, UNO y DOS y desde UNO abre una ventana. En DOS se define una función que lanza un alert.
Cuando pulses el botón se llamará a la función hola en el frame DOS.
Si la función hubiese estado definida en UNO, la llamada a la función hubiese sido window. Opener. Hola();, ahorrándonos la referencia "parent.UNO" (window. Opener. Parent. UNO. hola(); también funcionaría).
Si la función estuviese definida en indice.html, la llamada sería window.opener.parent.hola();
Creo que el ejemplo recoge el caso que comentas (me parece que es el último caso).
Vale, es exactamente lo que quería que me explicases y me ha quedado muy claro. Imaginemos que el popup no lo abro con la función window. open (que no lo hago con window.open). Para referirme a la función en UNO podría poner:
parent.UNO.funcion()
Si no se puede, ¿qué podría poner? ¿?
Esa sería la forma de llamarla, aunque también serviría top. UNO. Función()

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas