10.5 - Frames

Em html é possível dividir uma janela em várias partes independentes, chamadas frames. De certa forma, cada frame se comporta como uma janela independente, uma vez que é possível carregar em cada um deles um outro documento html com suas características específicas. Em javascript, o comportamento de frames baseia-se nestas características: Cada tag gera um objeto no array frames da window do arquivo de layout. Documentos exibidos em um frame podem acessar este vetor através das propriedades de window:

 Métodos:

self -

a própria janela atual

parent -

window do arquivo de layout mais próximo.

top -

window do arquivo de layout topo da hierarquia.

O objeto frame é equivalente a um objeto window, utilizado para lidar com aquele frame.

Cada frame é uma propriedade do objeto window e pode ser acessado pelo array frames [ ] ou pelo seu nome definido no HTML através do atributo name da tag .

Referências entre frames

Suponha a seguinte divisão em frames criada pelo arquivo html:

<html>
<head><title>Layout 1</title></head>
<frameset rows="75%,25%">
<frame name="fa" src="fa.htm">
<frame name="fb" src="fb.htm">
</frameset>
</html>

Neste caso, serão carregados dois documentos html chamados fa.htm e fb.htm dentro dos dois frames criados. Imagine agora que precisamos incluir um script no primeiro documento (fa.htm) que precisa interagir com o segundo documento que está carregado no frame de baixo. Para fazer esta referência, é possível usar:

parent.frames[1].document.write (...)
parent.fb.document.write (...)

A referência parent.frames[1] ou parent.fb comportam-se exatamente com se elas próprias fossem janelas, podendo portanto, utilizar todas as propriedades e métodos do objeto window neste contexto, daí a construção “parent.fb.document.write()”.


Dica

Na maioria dos casos as propriedades top e parent podem ser utilizadas indiferentemente. Apenas quando frames são carregados dentro de outros frames, existe uma diferença entre usar parent ou top. Enquanto parent refere-se ao layout mais próximo, top refere-se ao topo de toda a hierarquia.

O exemplo a seguir carrega quatro documentos diferentes em quatro frames. Veja o código fonte do documento carregado no primeiro frame para analisar o script que permite alterar os documentos nos demais frames.