brunohcs Postado Abril 9, 2009 Denunciar Share Postado Abril 9, 2009 (editado) 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.locationcom sleep passa umas 4x pelo if e dai da window.locationsem 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 Abril 9, 2009 por brunohcs Adcionar tag's (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LucasConstantino Postado Abril 12, 2009 Denunciar Share Postado Abril 12, 2009 (editado) pocha, muito complicado isso ai garoto... tem um jeito que uso e acho um pouco menor e pratico:java script:<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 Abril 12, 2009 por LucasConstantino Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
brunohcs
veja só galera fiz o seguinte script pra aumenta o tamanho do iframe!
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 brunohcsAdcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.