Avatar billede kimkjær Nybegynder
03. april 2002 - 14:45 Der er 11 kommentarer og
1 løsning

Dymamisk længde på IFrame

Indholdet i min Iframe har forskellig længde, og jeg vil gerne undgå scroll bars. Kan man ændre Iframe's length parameter ved hjælp af javascript? i såfald hvordan?
Avatar billede Slettet bruger
03. april 2002 - 14:51 #1
jeps, 2 sekunder.
Avatar billede Slettet bruger
03. april 2002 - 14:53 #2
din iframe skal se sådanne ud :
<iframe id="ifr" name="2" src="" frameborder="0" style="width: 486px; height: 200px;" frameborder="0" marginheight="0"></iframe>

i alle vinduer der skal åbne skal der stå følgende:

<html>
<head>
<script>
function juster() {
dw = document.body.scrollHeight;
fw = document.body.offsetHeight;
diff = dw - fw + 0;
obj = (document.getElementById) ? parent.document.getElementById("ifr").style : parent.document.all.ifr.style;
h = parseInt(obj.height);
obj.height = h + diff;
}
</script>

</HEAD>
<body onLoad="juster();">
</body>
</html>
Avatar billede Slettet bruger
03. april 2002 - 14:53 #3
det virker perfekt, bruger det selv &:-D
Avatar billede kimkjær Nybegynder
03. april 2002 - 14:58 #4
Jeg prøver det lige selv, så giver jeg points!
Avatar billede Slettet bruger
03. april 2002 - 15:00 #5
du kan også se det på www.questis.dk i funktion kun menuen questis virker &:-D
Avatar billede Slettet bruger
03. april 2002 - 15:12 #6
jeg går ud fra du kunne bruge det &:-D
Avatar billede olebole Juniormester
03. april 2002 - 15:15 #7
<ole>
Virker - ja .... men kun i IE og med en del redundant kode og sludder.
En X-browser version, der er lidt mere elegant må være denne:

<html>
<head>
<script type="text/JavaScript">
function juster(doc) {
var dh = (document.all)? doc.body.scrollHeight+5 : doc.height;
var styleObj = (document.all)?  document.all.ifr.style : document.getElementById("ifr").style;
styleObj.height = dh;
}
</script>
</head>
<body>

<iframe id="ifr" name="ifr" src="" frameborder="1" style="width: 486px; height: 200px;"></iframe>

</body>
</html>

Så kan du nøjes med at skrive:
  <body onload="parent.juster(this.document);">
i de dokumenter, der loades  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
03. april 2002 - 15:31 #8
den er jo ikke særlig smart.....

den tager ikke rigtigt højde for flere frames der skal justeres. så kager den det hele samme
Avatar billede olebole Juniormester
03. april 2002 - 15:38 #9
Der var i spørgsmålet tale om én iframe (*min* iframe) - men det er da ikke noget problem ... så lægger man den jo blot ned i dokumentet, der loades og tilpasser kaldet.
Er der som i dette tilfælde kun tale om én iframe er det dog absolut smartest ikke at skulle skrive en bunke overflødig kode i hvert dokument, der skal loades - og brugeren slipper for at hente det, hver gang.

Det ændrer heller ikke ved den overflødige kode i dit ekempel, questis - og at din ikke kan bruges i NS6+ og Mozilla  ;o)
/mvh
Avatar billede olebole Juniormester
03. april 2002 - 15:42 #10
Med det, din kan, kunne du blot have skrevet:

<script type="text/JavaScript">
function juster() {
obj = parent.document.all.ifr.style;
obj.height = document.body.scrollHeight;
}
</script>

... resten er overflødigt sludder  ;o)
/mvh
Avatar billede kimkjær Nybegynder
03. april 2002 - 16:02 #11
Jeg følger stadigt debatten, og overvejer pt, at at ændre min kode!
Avatar billede olebole Juniormester
03. april 2002 - 16:05 #12
*LooL* Gør du blot begge dele, Kim  ;o)
/mvh
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