Gå til innhold

tabell/celle høyde og iframe


Anbefalte innlegg

skal hente en ekstern lenke inn i en tabell/celle med bruk av iframe (webserver kjører på domino og kan derfor ikke bruke PHP include)

 

Problemet er at tabellen/cella rundt ikke "merker" hvor høyt innholdet i iframen er, og innholdet fra den eksterne lenken er av variabel høyde.

 

Tenkte så på at det må da finnes en måte å løse dette på i javascript. Der scriptet sjekker url og teller linjer, så gjør om dette til px og setter dette tallet i table height.

 

Eller finnes det helt andre måter å gjøre dette på? Tror webserveren støtter perl også.

Lenke til kommentar
Videoannonse
Annonse

Har en løsning her som jeg selv benytter for IE (nyere versjon) kompatible sider.

Det er en god ide å verifisere mot eldre versjon av IE samt NN og andre hvis dette er et krav. Det kommer ikke som en overraskelse dersom det ikke fungerer på andre browsere, men litt kode endring kan jo gjøre susen. Anyway.. her er noe du kan begynne med:

function fixHeight(o) { 
 var h=430, d=frames[o.name].document; 
  if (typeof(d.body.scrollHeight)!=undefined) { 
   h=d.body.scrollHeight; 
} 
 else if (typeof(d.height)!=undefined) { 
   h=document.height; 
} 

if (typeof(d.body.scrollWidth)!=undefined) { 
if (d.body.scrollWidth > 589) { 
o.scrolling = 'yes'; 
} else { 
o.scrolling = 'no'; 
} 
} else { 
o.scrolling = 'no'; 
} 
o.scrolling = "yes"; 

 if (d.body.currentStyle) { 
   var cS=d.body.currentStyle; 
   h += parseInt(cS.marginTop,10), 
   h += parseInt(cS.marginBottom,10); 
} 
else if (window.getComputedStyle) { 
   h += parseInt(window.getComputedStyle(d.body,"").getPropertyValue("margin-top"), 10); 
   h += parseInt(window.getComputedStyle(d.body,"").getPropertyValue("margin-bottom"), 10); 
 } 
 o.height=h + "px"; 
} 

h=430 angir default høyden slik at iframe'n ikke får en lavere høyde enn angitt verdi. Se også på scrollwidth sjekken som gjøres nedi scriptet.

 

Du trigger scriptet på denne måten:

<iframe id="ifMS" name="ifMS" onload="fixHeight(this)" scrolling="auto" src"iframe.html" frameborder="0" style="position:absolute; left:158px; top:76px; width:602px; z-index:1; overflow: auto; visibility: visible;" height="100%"> 
</iframe>

Det er mye unødvendig kode på iframe'n her, men det er onload event'et som er hovedsaken. Så vidt jeg husker så er det ikke alle browsere som støtter dette, men da er det kanskje mulig å trigge på "onload" i dokumentet som hentes.

 

Håper dette er noe du kan ta utgangspunkt i for å løse problemet ditt.

 

Happy coding!

 

 

-Kidder-

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...