Avatar billede simonbk Nybegynder
01. august 2006 - 16:47 Der er 12 kommentarer

Variable højde på iframes - er det muligt?

Er der nogen der ved om det er muligt at style iframes således at
de automatisk tilpasser sig højden af indholdet?

Har forsøgt mulige hacks, men synes det er noget vanskeligere at style iframes end divs. Så hvis der er nogle som har nogle gode guidelines til styling af iframes vil jeg blive glad ;-)

På forhånd tak.
Avatar billede keysersoze Guru
01. august 2006 - 18:29 #1
hvis du har noget at kunne aflæse højden på, fx et billede eller et layer, kan du benytte js til at sætte højden efter at indholdet er loadet og højden dermed ligger fast. fx ca sådan;

top.document.getElementById('iframe').style.height = document.getElementById('ting').style.height + 'px';
Avatar billede simonbk Nybegynder
01. august 2006 - 21:40 #2
Skal dette script indsættes i parent eller targetsiden? Går der ikke kludder i det når der skal læses i den ene side og opdateres style i det andet? Parent er jo loadet længe før target.
Avatar billede keysersoze Guru
01. august 2006 - 22:18 #3
det skal køres i din iframe - og nej, der går ikke kludder i det, for du vil (såfremt javascript er aktivt hos klienten) til enhver en tid kunne manipulere stort set alt i koden.
Avatar billede lateralus Nybegynder
02. august 2006 - 17:32 #4
Istedet for at aflæse højden af et billede kan du aflæse højden af hele dokumentet (i iframen) via:

document.body.scrollHeight

dvs. keysersozes forslag kan skrives således:

top.document.getElementById('iframe').style.height = document.body.scrollHeight;
Avatar billede simonbk Nybegynder
05. august 2006 - 12:48 #5
Jeg kan ikke få det til at virke. Kan I specificere, hvor i koden jeg skal indsætte javascriptet?

På forhånd tak.
Avatar billede keysersoze Guru
05. august 2006 - 13:04 #6
det skal indsættes som onload i din iframe - og du skal selvfølgelig tilrette navnet "iframe" til det din iframe har af id
Avatar billede simonbk Nybegynder
05. august 2006 - 14:03 #7
<iframe id="Iframe" src="" scrolling="no" onload="top.document.getElementById('Iframe').style.height = document.body.scrollHeight;"> Browser fejl </iframe>

Nej det virker ikke. Jeg er stadig nød til at definere fast højde for at få det til at virke. Øv :-(
Avatar billede unknown_someone Juniormester
05. august 2006 - 14:09 #8
nej nej - du er helt forkert på den. onload skal placeres i body på den side der er i iframen.
Avatar billede dotcom1 Nybegynder
05. august 2006 - 14:09 #9
Jeg bruger ofte dette script med succes: http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm
Avatar billede dotcom1 Nybegynder
05. august 2006 - 14:10 #10
Dog med en enkelt rettelse for at det virker ens i IE og FF:
currentfr.contentDocument.body.offsetHeight skal være currentfr.contentDocument.documentElement.scrollHeight
Avatar billede keysersoze Guru
05. august 2006 - 14:25 #11
som allerede nævnt skal det være onload i body på din side i iframen - fx;

<body onload="top.document.getElementById('Iframe').style.height = document.body.scrollHeight;">

og så er det også vigtigt at bemærke at i js er der forskel på store og små bogstaver.
Avatar billede keysersoze Guru
13. september 2006 - 11:32 #12
kommet videre?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester