Objetos frame en Javascript

  • Por
Veamos con detenimiento los objetos frame, sus métodos y propiedades, que nos servirán para controlar los distintos marcos.
Los objetos frame son como los objetos window, aunque sin alguna propiedad muy específica de las ventanas del navegador, como por ejemplo el historial de páginas visitadas. Así pues, casi todo lo que podemos encontrar en un objeto window estará también en un objeto frame, por ejemplo el documento, con todo el contenido de la página.

El funcionamiento del objeto frame es, por tanto, es igual de sencillo del del objeto window. Para ilustrarlo veamos estas líneas que cambiarían el color de fondo de los dos frames a rojo.

window.frames[0].document.bgColor = "red"
window.frames[1].document.bgColor = "red"

Propiedades de frame

Vamos a ver ahora una lista de las propiedades de los frames que nos servirán para controlarlos.

document
Es el documento del frame que se está visualizando.

Frame
Otros frames que pudiera haber anidados dentro de ese frame.

frames array
Array que contiene todos los frames que pudiera haber anidados dentro de ese frame.

length
Número de frames hay dentro del frame.

name
El nombre del frame, que colocamos con el atributo NAME

parent
Hace referencia al "padre" del frame, es decir, el objeto window donde está incluido este frame.

self
Es el frame actual. Es una referencia a si mismo.

window
Es el frame actual. Es una referencia a si mismo.

Para que queden claras las propiedades window y self podemos ver estas sentencias. Todas ellas hacen referencia al segundo frame.

window.frames[1]
window.frames[1].window
window.frames[1].self

Y podríamos acceder a los colores de fondo de sus documentos de esta manera

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

Además de estas propiedades cabe recordar que lo frames contienen otras mucha propiedades del objeto window. En concreto tiene todas menos defaultStatus, history, opener y status.

Nota: En navegadores medianamente actualizados existen todavía más maneras de referenciar a los distintos frames. Para ello también se puede utilizar el nombre que le hayamos asignado al frame en la declaración HTML. Dicho nombre se indica con el atributo name incluido dentro de la etiqueta <FRAME>.

Por ejemplo, si hubiesemos llamado a uno de nuestros frames "frame0" podríamos referenciarlo, desde la página que declara los frames, con estas dos sentencias:

window.frame0
window.frames["frame0"]

Esta manera de referenciar funciona perfectamente en los navegadores IExplorer 6 y Netscape 7. Suponemos que también funcionará en navegadores desde la versión 4 en adelante, aunque en esos casos no lo hemos probado. Donde hemos probado estos métodos de acceso y seguro que no funciona es en Netscape 3.

Métodos de frame

Los métodos de los objetos frame también son una lista reducida de los del objeto window. No hay ningún método que esté pensado específicamente para controlar frames.