Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de Javascript
SEÇÕES
Manuais relacionados
+Workshop de Javascript
Categorias
+Scripts em Javascript

Índice do Manual Workshop de Javascript
+ Efeitos rápidos com Javascript
+ Abertura e configuração de popups com Javascript
+ Acessso por senha Javascript
+ Rollover com Javascript
+ Navegador dinâmico Javascript
+ Navegador desdobrável
+ Navegador desdobrável com frames
+ Texto em movimento na barra de estado
+ Marcar ou desmarcar todos os checkboxes de um formulário com Javascript
+ Desabilitar o menu contextual do navegador com Javascript
+ Relógio em Javascript
+ Scripts diferentes para cada navegador
+ Tamanho dos campos relativo ao navegador
+ Estilos diferentes para cada navegador
+ Tabela de cores com Javascript
+ Sub-menu em outra janela
+ Degradê de cor Javascript
+ Validar inteiro no campo de formulário
+ Exemplos de funcionamento da classe String
+ Exemplo de funcionamento de Date
+ Link aleatório Javascript
+ Geração de números aleatórios Javascript
+ Comprovar se as senhas são iguais
+ Ex. de trabalho com formulários. Calculadora simples
+ Enviar ao navegador a outra página se não tiver Javascript
+ Confirmação de envio de formulário
+ Javascript para se posicionar em um select
+ Inibir um campo texto de formulário com Javascript
+ Camadas com Internet Explorer 5, 6, Netscape 6, 7 e Opera
+ Mostrar e ocultar camadas com IE 5,6 NS 6,7
+ Movimento de Camadas com IE 5,6 NS 6,7
+ Escritura nas Camadas com IE 5, 6, NS 6, 7
+ Como iluminar tabelas, células ou filas
+ Inibir radio button com Javascript
+ Atualizar dois frames com um só link
+ Calcular a idade em Javascript
+ Iluminar formulários com CSS e Javascript
+ Autozoom de texto com Javascript
+ Javascript para evitar que a página se mostre em um frame
+ Elementos de formulário select associados
+ Conta os caracteres escritos em um textarea
+ Passo de parâmetros em HTML com client-side Javascript
+ Moldura dinâmica em Javascript com texto que muda
+ Criação de gráficos de barras com Javascript
+ Jogos em Javascript
+ Cross-Browser. DHTML compatível com todos os navegadores.
+ HTML Area. Editor WYSIWYG
+ Ocultar um e-mail de um link para evitar o spam
+ Função em Javascript para a inserção de datas
+ DHTML Calendar
+ Gerar uma cor aleatória com Javascript
+ A aprendizagem na Internet
+ Menu Dinâmico com Javascript
+ Página que muda aleatoriamente a cor de fundo
+ Script de recarregamento da página com Javascript
+ Mudar a cor às células de uma tabela com Javascript
+ Pop-ups DHTML – OpenPopups
+ Validar a extensão de um arquivo a subir com Javascript
+ Detectar a resolução da tela do usuário com Javascript
+ Esconder a URL de um link na barra de estado
+ Como integrar conteúdo RSS em minha página?
+ Fazer com que um iframe se ajuste à altura de uma janela com Javascript
+ É vantajoso o uso de ParseInt para validar números?
+ Efeito para desabilitar/habilitar o fundo da Página
+ Validar número de checkbox marcados com Javascript
+ Evitar que um textarea supere um número de caracteres permitidos
+ Javascript não intrusivo
+ Controle de introdução de caracteres de um campo de texto com Javascript
+ Listagem de diferentes Framework Javascript
+ Script para detecção de suporte a Ajax, Cookies e ActiveX
+ Leitor RSS com Javascript
+ Funções para validação alfanumérica de strings em Javascript
+ Script para informar da segurança de uma senha, com Javascript

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Fazer com que um iframe se ajuste à altura de uma janela com Javascript

Vamos definir dinamicamente com Javascript o tamanho de um iframe para que se ajuste ao espaço disponível na janela do navegador.


Tenho uma página que tem um iframe e quero que ocupe o espaço máximo disponível, porém não disponho de toda a página, porque há outros conteúdos na página. Ademais, como às vezes a janela do navegador é maior ou menor, o espaço que posso atribuir ao iframe é diferente.

Neste workshop de Javascript vamos realizar um cálculo do espaço disponível na página para que um iframe que temos dentro ocupe a maior área possível. Tudo tendo em conta que cada usuário pode entrar com uma definição de tela distinta e com um navegador distinto.

Nota: Lembramos que um iframe é um frame que se pode inserir no corpo de uma página, atribuindo uma altura e uma largura.

Primeiramente, gostaria que se entendesse bem o problema com o qual me encontro, ao não saber que área há disponível na página para cada usuário que nos visita.

Vejamos esta imagem, que nos pode esclarecer rapidamente o caso no qual nos encontramos.


Imaginemos uma definição de 800 x 600. Então, o espaço para o iframe será o tamanho útil onde se visualiza a página, menos o espaço reservado para o cabeçalho. Agora, por exemplo, em uma definição de 1280 x 768, como o espaço útil para a página é maior, o espaço no qual quero que se veja meu iframe também será maior. Continua sendo o tamanho útil onde se visualiza a página, menos o espaço reservado para o cabeçalho, porém como agora o espaço útil é maior, o iframe também tem que se apresentar com maior tamanho.

A solução passa por utilizar um Javascript para calcular o espaço útil da página e diminuir o espaço do cabeçalho. Então, teremos a dimensão altura que tem que ter o iframe.

Para calcular este dado temos que ter em conta que Internet Explorer e Firefox têm modos distintos. Ou seja, a propriedade espaço útil da página é distinta nestes dois browsers, por isso o script pode complicar um pouco.

Em Internet Explorer: o espaço útil se calcula com a propriedade document.body.clientHeight.

Em Mozilla Firefox: o espaço útil nos devolve a propriedade window.innerHeight

Com este script podemos calcular o tamanho que devemos reservar ao iframe:

if (window.innerHeight){
   //navegadores baseados em mozilla
   espaco_iframe = window.innerHeight - 110
}else{
   if (document.body.clientHeight){
      //Navegadores baseados em IExplorer, pois nao tenho innerheight
       espaco_iframe = document.body.clientHeight - 110
   }else{
       //outros navegadores
       espaco_iframe = 478
   }
}


O primeiro if serve para os navegadores Firefox, Netscape e similares, que têm a propriedade window.innerHeight

O segundo if é para IExplorer que conhece document.body.clientHeight.

Nos dois casos temos que diminuir 110, que é o espaço que ocupa o cabeçalho. O último if é no caso de que o javascript não entenda nenhuma das duas propriedades, para lhe dar um valor padrão.

Logo, escreveríamos mediante javascript a etiqueta iframe com os dados obtidos previamente:

document.write ('<iframe frameborder="0" src="minhapagina.html" width="770" height="' + espaco_iframe + '">')
document.write ('</iframe>')


E o que aconteceria se os navegadores não entenderem Javascript, ou estiverem desabilitado?

Nesse caso nos convém utilizar a etiqueta noscript, para mostrar um iframe com os valores por padrão (noscript só se tem em conte se não houver suporte para javascript):

<noscript>
<iframe frameborder="0" src="minhapagina.html" width="770" height=478>
</iframe>
</noscript>


O código completo seria o seguinte:

<script>
if (window.innerHeight){
   //navegadores baseados em mozilla
   espaco_iframe = window.innerHeight - 110
}else{
   if (document.body.clientHeight){
       //Navegadores baseados em IExplorer, pois nao tenho innerheight
       espaco_iframe = document.body.clientHeight - 110
   }else{
       //outros navegadores
       espaco_iframe = 478
   }
}
document.write ('<iframe frameborder="0" src="minhapagina.html" width="770" height="' + espaco_iframe + '">')
document.write ('</iframe>')
</script>
<noscript>
<iframe frameborder="0" src="minhapagina.html" width="770" height=478>
</iframe>
</noscript>

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de Javascript

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em Javascript


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites