Gå til innhold

Dynamic iframe height


Anbefalte innlegg

Videoannonse
Annonse
Tror det kan være lurt å legge ved HTML- og JS-koden din :-)

 

Har gitt iframe'en in ID "Showframe" alle frames har inneholder

 

 

<script>
function resizeToContent(){
var x =0;
var y =this.document.body.scrollHeight;
while (x < y){
x+=1;
}
parent.document.getElementById("showframe").style.height=x
}
</script>

og

 

<body onload="resizeToContent()">

 

Funker i IE, så det går lissom greit, men om noen vet hvordan jeg kan få det til å funke i firefox, eller et evt script som sier at firefox ikke støtter det og ber de åpne siden i IE..

Lenke til kommentar

regner med det er innholdet som er i iframen.

 

har styra med det her selv, men fikk det aldri helt til.

ekstra vanskelig var det fordi iframeinnholdet ikke kom fra samme server som iframen ble kalt fra. scrollheight er forskjellig mellom alle browsers.

 

den som kommer opp med en bra løsning på dette er rimelig flink på java.

Lenke til kommentar
  • 2 uker senere...

Dette er slik jeg har løst det på et prosjekt:

 

//Finner høyde på nettleser, setter til 900x600 om ikke klarer definere høyde. Dette har med innholdet jeg brukte i mitt tilfellet, skriv om etter ønske.
function scaleIframe(){
var iframe = document.getElementById('theIframe');
//Sjekker høyde iht forskjellige nettleseres måte å gjøre dette på
var testHeight = ( window.innerHeight ? window.innerHeight : (document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : (document.body ? document.body.clientHeight : 600)));
var testWidth = ( window.innerWidth ? window.innerWidth : (document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : (document.body ? 	document.body.clientWidth : 900)));

//Test for å sette minimum størreslse til 900x600 px.
iframe.style.height = testHeight <= 600?testHeight + 'px':"600px";
iframe.style.width = testWidth <= 900?testWidth  + 'px' : "900px";
}

//Denne ligger i et rammeverk, husker ikke helt hvordan den fungerer men det er best å ha den i en eventtrigger som dette.
addEvent(window,'resize',scaleIframe);

 

Edit: Feil i 900x600 test.

Endret av cbastus
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...