• 0
Sign in to follow this  
Holyspear

Redimensionamento De Iframes

Question

Bem pessoal, eu creio que todos já estão cientes da utilização de um código de JS para redimensionamento de Iframes dinâmicos, isso já está bastante divulgado.

Bem, depois de vários readaptações no código que é divulgado pora i, ainda não consegui os resultados satisfatórios, então, resolvi disponibilizar ele aqui, para podermos aperfeiçoa-lo na medida do possível.

Certo Pessoal, vamos começar. O Problema é o seguinte:

O Código está presente em um menu dinâmico do meu site, que é redimensionado automaticamente dentro de um Iframe. Eis ai o menú feito por CSS dentro do Iframe:

<< Visualizar o Menu >>

Códigos para Verificação:

O Menu:

<script language="JavaScript">

function resize() {

   parent.document.getElementById("iframe_menu").height = document.getElementById("tamanho").scrollHeight + 0;   

}
</script>

</head>

<body onLoad="resize();">
<div id="tamanho">

<table width="169" height="280" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#BBD6F1" id="menu" class="bordas">

  <tr>
    <td width="169" height="16" valign="middle" class="bordas"><span class="style1 style36 style8"><strong><a href="menu/rede_jovem.html" target="_parent">   Rede de Jovens</a></strong></span></td>
  </tr>
  <tr>
    <td width="169" height="16" valign="middle" class="bordas"><span class="style1 style36 style8"><strong><a href="menu/rede_casais.html" target="_parent">   Rede de Casais </a></strong></span></td>
  </tr>
  
</table>
</div>
</body>
</html>
O Iframe:
<table width="173" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" valign="top"><iframe id="iframe_menu" name="iframe_menu" hspace="0" frameborder="0" width="173" height="280" src="menu.html" marginheight="0" marginwidth="0" scrolling="No"></iframe></td>
        </tr>
      </table>

Ps.: Coloquei os Links do Menu resumidos para não ocupar muito espaço.

O que acontece é o seguinte: A medida que eu adiciono itens no Menu, o Iframe cresce ou diminui de acordo com a ação. Até ai tudo bem. Agora, quando eu abro o site a primeira vez, o Menu é carregado normalmente. Mas quando eu abro uma subpágina do Site, ou um item mesmo do Menu, O Iframe não é redimensionado e é justamente ai que o Iframe se fecha, ocultando o Menu. Observem:

<< Visualizar o Erro >>

Bem pessoal, isso acontece de vez em quando. Não é toda vez não... isso é o mais estranho. Agora, quando a página faz esse erro, basta que eu aperte o botão atualizar do navegador e ele volta ao normal. Vejam como ele é localizado normalmente no Site:

<< Visualizar o Menu Normal >>

Agora, para que a gente venha ter uma maior abrangência do Problema, vou disponibilizar as especificações técnicas:

1 - Foram realizados testes nos navegadores Firefox 1.5 e Netscape 7.0 com êxito nesse problema; ou seja, os dois navegadores não apresentaram o problema citado acima e rodaram o Script sem erros, perfeitamente.

2 - O Problema ocorre no Navegador IE 6.0, não frequentemente, mas de vez em quando. O mais interessante é que sempre que se abre a página Index do site (Primeira página) o erro nunca ocorre. Apenas quando se visita outras páginas do site.

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Faça um teste adicionando a seguinte meta tag entre as tags <head> e </head>

<meta http-equiv="pragma" content="no-cache">

Coloque tanto na página que contem o iframe, quanto na pagina que contem o menu. Depois nos diga se funcionou... ou não!

Share this post


Link to post
Share on other sites
  • 0

Olá amigo rajneesh... o código até o presente momento funcionou perfeitamente!!! Bem, eu esvaziei os Arquivos temporários do IE e tentei novamente abrir as páginas. Nenhuma apresentou o erro novamente.

Eu vou deixar o código rodando nas páginas ai durante essa semana para dar o veredicto final. Qualquer coisa eu posto novamente aew dizendo qual foi o resultado dos testes nessa semana.

Mas já de antemão eu gostaria de parabeniza-lo pelo código. Muito obrigado mesmo amigo!!! E gostaria de te pedir outro favorzinho se não for muito: Tem como você explicar o funcionamento desse Meta Tag? Eu não entendo muito deles não, mais eu achei tão interessante... não entendi o seu funcionamento, mais gostaria de uma explicação; se possível.

Obrigado mesmo amigo!!! Até mais e abraços!!!

Share this post


Link to post
Share on other sites
  • 0

Meta tags são tags que geralmente são usadas no cabeçalho do codigo html (tag HEAD) de uma página.

Tem um monte delas, mas tem umas poucas que são mais usadas. Dá uma olhada no Google e procura por meta tags...

Nesse site tem as mais comuns : http://rrbrandt.dyndns.org:60000/docs/tut/web/metatags.php

Aquela que eu disse antes é responsável por não gravar arquivos temporários. Logo, a página será sempre atualizada quando acessada.

Share this post


Link to post
Share on other sites
  • 0

Valeu mesmo!!! Hehehehhe muito bom!!! Os testes agora têm sido um sucesso. Só está faltando eu testar de outras máquinas com outros navegadores. Mas isso já é êxito mesmo!!!

Agradeço a ajuda desde já. Até breve!

Share this post


Link to post
Share on other sites
  • 0

Bem... aconteceu o que eu temia. O erro começou a voltar novamente, mas não com a mesma frequência de antes.

Bem pessoal, eu creio que o Internet Explorer esteja demorando a ler os muitos iframes que possuem na página, isso está dificultando o cálculo do Iframe do menu às vezes. (Isso é o que eu penso, pois quando coloquei as MetaTags de Pragma as páginas ainda não estavam totalmente terminadas, agora que estão, elas estão com mais iframes e mais pesadas).

O mais engraçado é que No Firefox 1.5 ou no Netscape 7.0 estão funcionando perfeitamente. Só no IE que está essa frescura!!! :o :unsure:

Bem isso está me gerando uma dor de cabeça tremenda. Rajneesh, será que você não teria outra alternativa ai? Ou será que mudando a arquitetura das páginas isso se resolve? Porque ai eu vou ter que eliminar um monte de Iframe das páginas, e isso vai dificultar meu trabalho de atualizações depois :( :( :(

Bem, seja qual for a decisão final, eu vou ter que acolher, pois o problema não pode ficar assim.

Até mais pessoal!!! admiro o ScriptBrasil pela capacidade da galera que está aqui.

Até breve.

Share this post


Link to post
Share on other sites
  • 0

Opa rajneesh... é isso mesmo!!! A maioria das páginas estão em ASP 3.0, é que a única linguagem de programação dinâmica que eu utilizo. Mas não são todas as páginas não. O engraçado é que justamente ao abrir uma página ASP, ela abre normalmente, mas quando eu chamo outra na mesma janela (_parent) ela dá o erro.

Existem também algumas vezes que o internauta entra no Portal normalmente e acontece o erro na Index, que por sinal é em HTML, mas possui alguns iframes em ASP (Janelas dinâmicas, login, etc.).

Mas, tem algo relacionado com a linguagem?

Até breve amigo!!!

Share this post


Link to post
Share on other sites
  • 0
Mas, tem algo relacionado com a linguagem?

Não... mas estou pensando se você pode usar "bufferização" (heheheh)

Tente usar Response.Buffer = True na página que será carregada dentro do iframe. E continue usando o PRAGMA.

Share this post


Link to post
Share on other sites
  • 0

Amigo, realmente não quis dar certo, mesmo colocando o Código de Buffer nas páginas ASP. Eu coloquei o código Buffer em todas as páginas ASP do portal e atualizei, mas mesmo assim ainda ocorreram os erros, e agora, com mais frequência. Vou te mostrar a arquitetura do Site, para que você venha entender melhor. Dê uma analisada nesse demonstrativo da Home Page do Portal e logo após, dá uma visitada no portal Ok?

<< Esquema Explicativo das Páginas Dinâmicas incluindo a Home Page >>

Bem amigo rajneesh, como você mesmo pode ter observado a estrutura das páginas do portal, eu utilizei vários Iframes que carregam partes diferentes e montam a página dinamicamente. Acontece que nem todos esses iframes são em ASP como você mesmo viu. Inclusive, o Iframe do Topo que puxa uma pequena animação em Flash está demorando um pouco a abrir, pois a animação possui cerca de 200Kb.

Agora um detalhe importante: Para você ver esse problema de fato, peço que esteje acessando o Portal através do Internet Explorer e assim que entrar na Home Page, utilize os formulários do Bispo e da Bispa para poder verificar o erro no Menu do Portal. No primeiro acesso ele está normal, mas quando eu passo diretamente de um formulário para o outro, ele se fecha. Lembrando que as duas páginas de formulários estão em ASP.

<< Link do Portal Embaixada Rocha Viva >>

Bem amigo, admiro sua relutancia em me ajudar e agradeço todo o esforço. Se você precisar, pode me avisar.

Até breve... :(

Share this post


Link to post
Share on other sites
  • 0

Realmente... não sei o que pode ser....

Mas me diga, se você programa em ASP porque não optou por fazer inclusões (SSI) ao invés de usar iframes?

Tente substituir pra ver o que acontece.

E, é claro, remova o response.buffer já que os erros aumentaram!

valeu.

Share this post


Link to post
Share on other sites
  • 0

Sim amigo... era o que eu já teria em mente. Hehehehehe!!! Mas... vou ter que reformular o Menu para ASP (O que será um pouco difícil, pois ele é puramente em CSS) e depois colocar ele através do SSI. Hehehehe... Bem, mas eu vou pensar no caso. Ao invés de deixar ele em HTML puro, vou fazer ele dinâmico em uma base de dados e paginar ele através do arquivo SSI.

Mas de qualquer forma amigo... meu muito obrigado pela sua atenção e que a galera aqui cresca sempre!!! Até mais!!!

Share this post


Link to post
Share on other sites
  • 0

mas num precisa esse trabalho todo,...

remove o iframe e coloca

<!-- #include file="menu.html" -->

Share this post


Link to post
Share on other sites
  • 0
Guest Visitante

NÃO TEM SOLUÇÃO PARA DEPURAR ESSE ERRO EM JAVASCRIPT !.ESSES SCRIPTS POSTADOS PELOS OUTROS USUÁRIOS NÃO DEPURA SEUS PROBLEMAS.TALVEZ TENHA SOLUÇÃO POSTANDO EM PHP E ASP,AS DUAS LINGUAGENS MALDITAS QUE EU QUERO TANTO PROGRAMAR MAS NÃO DÁ CERTO (...)*

JÁ QUE VOCÊ FALA TANTO EM ASP (ME IRRITA),POR QUE VOCÊ NÃO POSTA LÁ ?.FALAR ASP EM FÓRUM DE JAVASCRIPT É PRETEXTO E ESTRAGA A INTEGRIDADE DO ASSUNTO,ESSE SUPOSTO ERRO AÍ DEVERIA SER EM JAVASCRIPT,E NÃO EM ASP.SE FOSSE MODERADOR EU MOVERIA ISSO PRO FÓRUM DE ASP...

E SE ESSE ERRO FOR EM ASP,ESSE ASSUNTO NÃO É COMIGO,SE FOR EM JAVASCRIPT ATÉ POSSO PENSAR EM DAR UM SCRIPT...

________________________________________________________________________________

*RESUMO PARA NÃO VIRAR PRETEXTO TAMBÉM

"AS COISAS DEVEM SER ÍNTEGRAS E NÃO CORROMPIDAS"

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this