Ir para conteúdo
Fórum Script Brasil
  • 0

Aumentando iframe dependendo do conteudo


brunohcs

Pergunta

veja só galera fiz o seguinte script pra aumenta o tamanho do iframe!

<script>
function Altx()
{
                var oBody    = document.body;
    var number=oBody.scrollHeight + 10;  
    parent.document.getElementById("ifrexpx").style.height = number;
    if(parent.document.getElementById("ifrexpx").style.height=='10px')
    { sleep(2000); window.location='pagina.php?n=<?=$n?>'; }
}
Altx();
</script>

Então quando a pagina carrega ele pega o tamanho dela e joga para o tamanho do iframe.

Funciona só que não na primeira carregada do documento por isso aquele if verificando se o iframe ainda é 10px que é o tamanho inicial dele...

a função Sleep é só pra diminui o numero de vezes que ele da o window.location

com sleep passa umas 4x pelo if e dai da window.location

sem o sleep xega a passar mais de 20x pelo if.

então eu queria saber porque esse trecho "var number=oBody.scrollHeight + 10; " só funciona as vezes?

esqueci de fala, o n é só uma var em php pra conta quantas vezes a pagina atualiza até o iframe fika no tamanhu certo!

Editado por brunohcs
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

pocha, muito complicado isso ai garoto... tem um jeito que uso e acho um pouco menor e pratico:

java script:

&lt;script language="JavaScript">

function calcHeight()
{
  //encontra a altura da página que será exibida no iFrame
  var the_height=
    document.getElementById('ID_DO_IFRAME').contentWindow.
      document.body.offsetHeight;

  //muda a altura do iframe
  document.getElementById('ID_DO_IFRAME').height=
      the_height + 20; //esse "+20" faz com que a altura ultrapasse um pouco a da pagina interna. Dessa forma, você evita que o iFrame fique móvel ao selecionar seu conteúdo.

}

</script>
Dai então você faz o iFrame assim:
<iframe id="ID_DO_IFRAME" allowtransparency="yes" src="root/home.html" width="800px" height="100%" frameborder="0" border="0" scrolling="no" onload="calcHeight();"></iframe>
Deixe o width sempre uns 10px maior que o da página a ser aberta. Deixe também o allowtrasparency="yes" pois dessa forma o iframe não irá se jogar pra cima de outros conteúdos. Lembre-se que esse "allowtrasnparency" refere-se à cor ou imagem de fundo da página que abrirá dentro do iFrame. Ou seja, se a página que irá abrir contiver fundo do body preto, o preto será transparente. Mas se você tiver uma div com fundo qualquer, essa div não ficará com fundo transparente! Deixe a altura em 100% frameborder, border, scrolling são para evitar os Scrollings... agora para ativar a função, coloque o " onload='calcHeight();' "... dessa forma SEMPRE que o iFrame for alterado ele irá executar a função, e isso inclui a primeira exibição da página... Bom, agora uma dica básica: forme uma div em torno do iFrame para controlar coisas extras. Por exemplo, se você quiser que o local onde o iframe está sendo exibido tenha uma altura mínima, use CSS dessa forma:
#nome_da_div{

width: 800px; <!-- a mesma do iFrame -->
height:auto;
min-height: 320px; <!-- altura mínima para alguns navegadores -->
_height: 320px; <!-- altura mínima para IExplorer -->

}

Saiba que a altura mínima usada em "min-height" e em "_height" podem precisar ser diferentes... para deixá-las equivalentes, teste a página com firefox e com iexplorer o tempo todo, até chegar num valor aproximado... no meu site, essa diferênça chegou a mais de 30px...

Editado por LucasConstantino
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...