Este é um artigo que debe ser lido como continuação do artigo
Como fazer um navegador desdobrável, publicado em criarweb.com. Nesse artigo mostrávamos como criar um navegador desdobrável com um elemento SELECT de um formulário.
Muitos visitantes já utilizaram o script com sucesso, mas alguns escreveram com dúvidas de sua utilização em uma página realizada com frames. A dúvida consiste em que o navegador somente nos atualiza o frame no qual está, e o interessante para eles seria que atualizasse um frame diferente. É um problema muito lógico visto que muitas vezes o navegador se coloca de modo que esteja sempre visível, em um frame onde temos os controles de navegação e a área que desejarmos que se atualize é a correspondente ao frame principal.
O único lugar onde vamos ter que fazer mudanças é no script que contem a função a qual chamamos destino(). Há que adaptar essa função para que possamos mudar a página de um frame distinto ao que estamos.
Em nosso exemplo anterior fazíamos window.location = url para mudar o conteúdo do frame onde estava o navegador. Agora devemos mudar o window.location de um frame distinto a este e para acessar a location de um frame distinto se consegue através desta inter-ligações de objetos:
window.parent.frames[].window.location
frames[] é um vetor de frames onde o primeiro frame do FRAMESET seria frames[0], o segundo seria frames[1] e assim sucessivamente. Caso não tenha ficado claro, vejamos com um exemplo.
Temos este FRAMESET
<frameset rows="*,40">
<frame name="principal" src="index.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="no">
<frame name="menudesdobravel" src="desdob.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="no">
</frameset>
No segundo frame temos a página que contem menu desdobrável. Como é o segundo frame acessaríamos a sua location desta maneira:
window.parent.frames[1].window.location = url
O script inteiro ficaria assim:
<script language=javascript>
function destino(){
url = document.navegador.secoes.options[document.navegador.secoes.selectedIndex].value
if (url != "no") window.parent.frames[0].window.location = url;
}
</script>
Isso é tudo, já não faz falta mudar mais coisas para cumprir nossos objetivos.
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em