• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

hawk

Autoresize do frame

4 mensagens neste tópico

Boas!!

Estou a criar um website, e para manter o menu e o banner fixos, criei um frame onde são carregados os conteúdos dos links desse menu principal. As pá guinas carregadas são compostas por um segundo menu e outro frame, de forma a seguir o mesmo processo. O problema é que o conteúdo das pá guinas é de tamanho variável, e como não quero ter scrollbars nos frames, por razões estéticas, encontrei um código mt bom para fazer autoresize dos frames ao seu conteúdo. O problema é que isto não está a funcionar para 2 segundo frame que está dentro do inicial.

Alguém sabe como resolver isto??? Talvez já tenham respondido a esta dúvida, mas não encontrei nada sobre autoresize de frames um dentro do outro  :down:


<script type="text/javascript">

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["ini"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="no"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 3 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
    var dyniframe=new Array()
    for (i=0; i<iframeids.length; i++){
        if (document.getElementById)
        resizeIframe(iframeids)
        //reveal iframe for lower end browsers? (see var above):
        if ((document.all || document.getElementById) && iframehide=="no"){
        var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
        tempobj.style.display="block"
    }
    }
}

function resizeIframe(frameid){
    var currentfr=document.getElementById(frameid)
    if (currentfr && !window.opera){
        currentfr.style.display="block"
        if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
            currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
        else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
            currentfr.height = currentfr.Document.body.scrollHeight;
        if (currentfr.addEventListener)
            currentfr.addEventListener("load", readjustIframe, false)
        else if (currentfr.attachEvent){
            currentfr.detachEvent("onload", readjustIframe) // Bug fix line
            currentfr.attachEvent("onload", readjustIframe)
        }
    }
}

function readjustIframe(loadevt) {
    var crossevt=(window.event)? event : loadevt
    var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
    if (iframeroot)
        resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
    if (document.getElementById)
        document.getElementById(iframeid).src=url
}

if (window.addEventListener)
    window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
    window.attachEvent("onload", resizeCaller)
else
    window.onload=resizeCaller

</script>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora bem, isto é Javascript, não é Java nem JSP, e identação dá sempre jeito :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    //Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:

    //Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:

    var iframeids=["ini"]

não tens que por aqui as ids dos frames que queres ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens razão Knitter, kd reparei já era tarde. Ty por pores isto no lugar certo  :biggrin:

    //Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:

    //Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:

    var iframeids=["ini"]

não tens que por aqui as ids dos frames que queres ?

Não isso serve para fazer o autoresize dos vários frames na mesma página (file html).

Álguem sabe alguma solução para o meu problema, msm k não seja com este código??!  :bored:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora