Referencias desde un frame a otro

  • Por
Aprendemos a acceder desde un frame a otro distinto.
Lo más habitual a la hora de trabajar con frames es que desde una página que pertenece a un frame deseemos acceder a alguna propiedad o método vinculado con otro frame. Para ello tenemos que utilizar también la jerarquía de objetos del navegador.

En concreto utilizaremos la propiedad parent de los objetos frame, que nos da acceso a el objeto window donde está incluido ese frame. Así pues, el objeto que tenemos al acceder a la propiedad parent de un frame corresponde con el objeto window de la declaración de frames. A partir de ese objeto window podemos acceder a cualquier otro frame por la matriz de frames.

Así haríamos para acceder desde el cualquier frame al frame 1.

window.parent.frames[1]

Nota: Recordar que los índices de los arrays en Javascript empiezan en 0, por lo que en este caso, el frame con índice 1 es el escrito en la declaración de frames en segunda posición.

Si quisiésemos acceder a la propiedad bgColor del documento alojado en el frame 1.

window.parent.frames[1].document.bgColor

Ahora veamos el código necesario para actualizar el contenido que se está visualizando en el frame 0, es decir, la URL que está mostrando.

window.parent.frames[0].location="nueva_url.html"
Ahora que ya sabemos referenciar desde un frame a cualquier otro, podremos hacer algún ejemplo interesante.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

JUANMA

31/3/2005
Si tenéis frames anidados podéis hacer referencia a estos frames de la siguiente forma:

window.parent.frames[1].frames[1].document.form.textarea.value = "2";

//Nota: frames[0] es el primer frame (si no sabéis que número es ir haciendo pruebas hasta que salga)

Carla

03/5/2006
Buenas, tengo una consulta para hacerles, estoy desarrollando una pagina, en la que tengo 3 frames, arriba, medio y abajo, en de abajo tengo un banner y arriba un menu con 4 opciones, que hacen referencia a otras 4 paginas, el tema es que quiero cargas esas pag referenciadas en el menu en el frame del medio, lo estoy haciendo todo con javascript, me darian una idea de como hacer que cargue todo en el frame del medio, muchas gracias!

luiski

18/8/2006
Hola me gustaria saber como se haria y si se puede cargar una pagina en un frame que contiene otra frame...
me explico, tngo una pagina que contiene un frame y tngo un link a otra pagina ke kiero ke se cargue en ese frame pero esa pagina contiene dos frame un menu a la izkierda y otra frama la derecha y kiere cargar a la derecha otra pagina...
gracias, un saludo

Raquel

20/12/2007
Si se tiene múltiples niveles de marcos anidados, se puede llegar a la parte superior de la jerarquía de marcos con:
Window.top

Otra manera, pero mas tediosa es :
window.parent.parent.parent.otherframe.someElement


Leo Aguilar

08/3/2011
Gracias
Muchas gracias por este aporte, soy nuevo programando y su publicación me ha ayudado mucho.

Alex

17/1/2013
propiedad bgColor
Intento acceder a la propiedad bgColor desde un frame a otro distinto mediante una función (tal cual el ejemplo de arriba)... El problema es que no accede a esa propiedad, pero a otras como la 'href' de 'location' accede sin problemas.
Alguna idea, experiencia parecida? Gracias.