Avatar billede steen_hansen Forsker
15. maj 2004 - 23:36 Der er 24 kommentarer og
1 løsning

Hvordan kan højden på en iframe gøres dynamisk?

Jeg kan kun få en iframe til at være en bestemt højde. Når jeg henter forskellige dokumenter med varieret indhold ind i framen, bliver der nogle gange for meget plads for neden, andre gange kommer den lodrette scrollbar frem. Kan man få iframe til at opføre sig mere dynamisk?

Jeg ved ikke, om dette spørgsmål skulle være under HTML, men jeg regner med, at hvis det kan klares, kan det klares med JavaScript.
Avatar billede roenving Novice
15. maj 2004 - 23:42 #1
I iframen:

<body onload="parent.getElementById('IFRAMEID').style.height=document.body.scrollHeight+'px';">

-- kunne kun lige komme på IE-løsningen ...
Avatar billede steen_hansen Forsker
15. maj 2004 - 23:47 #2
Ok, hvad så med i dokumentet, hvor iframen får sat højde på?
Avatar billede steen_hansen Forsker
15. maj 2004 - 23:53 #3
Jeg får en fejl: "Objektet understøtter ikke denne egenskab eller metode"
Avatar billede roenving Novice
15. maj 2004 - 23:55 #4
Det er jo parent !-)

-- så der skal du bare sørge for at iframen har et id:

<iframe id="IFRAMEID" src=...></iframe>

-- og så kan denne vist bruges:

<body onload="parent.getElementById('IFRAMEID').style.height=((document.body.scrollHeight)?document.body.scrollHeight:document.body.offsetHeight)+'px';">
Avatar billede steen_hansen Forsker
16. maj 2004 - 00:12 #5
Nej, det er det samme :o(
Avatar billede steen_hansen Forsker
08. juni 2004 - 21:33 #6
Løb du tør for idéer, roenvig? Jeg kan ikke få den til det.
Avatar billede roenving Novice
08. juni 2004 - 22:19 #7
<iframe id="IFRAMEID" src=...></iframe>

-- og så kan denne bruges i det dokument, som loades i iframen:

<body onload="parent.getElementById('IFRAMEID').style.height=((window.innerHeight)?window.innerHeight:(document.body.scrollHeight)?document.body.scrollHeight:document.body.offsetHeight)+'px';">
Avatar billede steen_hansen Forsker
08. juni 2004 - 22:24 #8
YES! Så kører vi igen :o)

Smid lige et svar :o)
Avatar billede roenving Novice
08. juni 2004 - 22:55 #9
Velbekomme '-)
Avatar billede steen_hansen Forsker
08. juni 2004 - 22:58 #10
Takker igen-igen :o)
Avatar billede roenving Novice
08. juni 2004 - 23:00 #11
-- og tak for point ;~}
Avatar billede steen_hansen Forsker
15. juni 2004 - 00:31 #12
Forøvrigt, roenviNg, jeg får alligevel en fejl:

Objektet understøtter ikke denne egenskab eller metode :o(
Avatar billede roenving Novice
15. juni 2004 - 12:04 #13
-- langsom debugging !-)

På hvilket objekt får du fejlen ?-)

-- for du har vel sørget for at iframeid'et er det samme ?o]
Avatar billede steen_hansen Forsker
15. juni 2004 - 12:09 #14
Ok, inden langsom debugging, så skal IFRAMEID i

<iframe id="IFRAMEID" src=...></iframe>

vel bare laves om til et tal eller en tekst?



Og ligeså i

<body onload="parent.getElementById('IFRAMEID').style.height=((window.innerHeight)?window.innerHeight:(document.body.scrollHeight)?document.body.scrollHeight:document.body.offsetHeight)+'px';">

?
Avatar billede roenving Novice
15. juni 2004 - 12:18 #15
Ja, de skal være ens, men du skal lige huske, at et id ikke må starte med et ciffer, det _skal_ være et bogstav (a-z) eller _ som er det første tegn i den slags html-names !-)
Avatar billede steen_hansen Forsker
15. juni 2004 - 12:20 #16
Ok, men jeg har intet rørt ved din kode, så der står IFRAMEID begge steder :o)
Avatar billede roenving Novice
15. juni 2004 - 12:25 #17
-- og den der lange onload-ting er på det dokument du loader inde i iframen ?-)
Avatar billede steen_hansen Forsker
15. juni 2004 - 12:26 #18
Jeps. Den korte ligger selvfølelig i hoveddokumentet, som indeholder iframen :o)
Avatar billede roenving Novice
15. juni 2004 - 12:34 #19
Med langsom debugging hentyder jeg til, at:

1. du indsætter alerts i koden, så du kan se, hvilken kommando, som udløser fejlen og derefter alerter du de objekter som indgår i komandoen ...

2. opretter en funktion og deler det hele over flere linjer, så du kan få meldingen om linjen og derefter alerte dig til problemet !-)
Avatar billede steen_hansen Forsker
15. juni 2004 - 12:44 #20
roenving, du forlanger meget :oD (Alerts i koden? Hm?)

Jeg vil prøve at se om jeg formår det. Ellers vender jeg tilbage med spørgsmål. Er det ok? :o)
Avatar billede steen_hansen Forsker
17. juni 2004 - 00:59 #21
Kan du give mig nogle hints til hvordan jeg gør? Jeg har ikke haft tid før nu :o)
Avatar billede thedeathart Nybegynder
17. juni 2004 - 01:05 #22
du kan ikke benytte css ? så ville det være meget nemmere
Avatar billede steen_hansen Forsker
17. juni 2004 - 01:07 #23
Nej, jeg har ikke mulighed for at benytte CSS :o)
Avatar billede steen_hansen Forsker
17. juni 2004 - 01:07 #24
Ikke til dette formål.
Avatar billede roenving Novice
17. juni 2004 - 01:55 #25
Øeh, thedeathart, hvor er det lige css er dynamisk i sig selv ?-(

Hvilket sted i w3c's specifikationer skal vi ikke lave om for at den bliver det ?-)
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