sexta-feira, 1 de outubro de 2010

Auto Height em um IFrame

Bom, eu queria aumentar o tamanho de um IFrame automaticamente, mas tem alguns detalhes extras nos meus requisitos. Não me perguntem porque eu tive que fazer isso, mas tive que fazer.

Isso tinha que ser feito de dentro do IFrame porque o bixinho carrega um código em Ext.js e o Ext funciona no Ext.onReady. Ou seja, depois que carregou a página. Se o javascript estivesse na página principal executaria o código no load do body, mas nessa hora o IFrame não estaria totalmente carregado.

Então, no final do código do Ext.js, depois que tudo foi carregado, você coloca o seguinte código:

var iframe = window.top.document.getElementById('ID_DO_FRAME');
  iframe.style.height = iframe.contentDocument.height + 50;

Se você adicionar algo no IFrame, chame uma função com esse código depois e pronto, funciona. Se você estiver na html principal, use o código abaixo.

var iframe = document.getElementById('ID_DO_FRAME');
  iframe.style.height = iframe.contentDocument.height + 50;