Avatar billede zod Nybegynder
20. september 2004 - 15:28 Der er 39 kommentarer og
1 løsning

height på iframe og table

Hej alle sammen..

jeg er lige gået i gang med en ny hjemmeside, og stødte på et problem på min side.. jo altså som du kan se på min side er "menu'ernes" width på 600 og iframes på 500. jeg har fået lavet det sådan at iframen tilpasser sig størrelsen af den side den skal vise, men jeg ville gerne have at "menu'erne" fuglte med. men blev ved med at være 100 størrer end iframen.


Min side:


http://frip.dk/jabas/Default.htm
Avatar billede roenving Novice
20. september 2004 - 15:39 #1
Højden er da hhv. 600 og 500 ...
Avatar billede zod Nybegynder
20. september 2004 - 15:50 #2
nå ja... men det gør jo ingen forskel
Avatar billede roenving Novice
20. september 2004 - 16:17 #3
Kan du da ikke bare sætte menuernes højde til 500 ?-)
Avatar billede zod Nybegynder
20. september 2004 - 22:16 #4
jojo... men når iframen bliver størrer skal menu'erne også blive større
Avatar billede roenving Novice
20. september 2004 - 23:19 #5
Så kan du f.eks. bruge dette lille script:

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight);
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 'px';
  }
}
</script>

-- og så kalde det fra den funktion, som giver iframen den tilsigtede højde, f.eks. i et script i iframen:

<script language="javascript" type="text/javascript">
function ifrHeight(){
  var t=document.body.scrollHeight;
  if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+4+'px';
  parent.synchronizeElms()
}
</script>
Avatar billede zod Nybegynder
21. september 2004 - 16:58 #6
hvor skal jeg sætte de to ting hen?
Avatar billede roenving Novice
21. september 2004 - 17:01 #7
Som det fremgår, skal det sidste script ind i iframen (og husk at sætte id'en på iframe-tagget i hoevsiden !-)

Så er det jo nærliggende at antage, at det andet ikke skal deri, men i hoveddokumentet ...

Bemærk listen i starten, den skal selvfølgelig afspejle de id'er du bruger til dine 3 elementer !o]
Avatar billede zod Nybegynder
22. september 2004 - 12:47 #8
hvad er id'erne
Avatar billede roenving Novice
22. september 2004 - 13:17 #9
<iframe id="IFRAMEID" ... >

-- alle html-elementer kan man give et id, så uanset om et andet element har en anden type (en div overfor f.eks. en tabel !-) kan ovenstående synkronisere højden !o]
Avatar billede zod Nybegynder
22. september 2004 - 20:14 #10
det virker ikke, siden bliver ikke længere !

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight);
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 'px';
  }
}
</script>

// Satte jeg ind i default.htm (altså hovedsiden)og <iframe id="IFRAMEID"> i dafault.htm body'en


<script language="javascript" type="text/javascript">
function ifrHeight(){
  var t=document.body.scrollHeight;
  if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+4+'px';
  parent.synchronizeElms()
}
</script>

// satte jeg ind i den side iframen skal vise (i head)

hvad gør jeg galt
Avatar billede roenving Novice
22. september 2004 - 20:17 #11
Har dine andre elementer så id="left" og id="right" ?-)
Avatar billede zod Nybegynder
24. september 2004 - 19:08 #12
ja men det virker ikke..

//
// Det her satte jeg ind på defualt.htm (altså hovedsiden)
// Og i default.htm "body" satte jeg <iframe id="IFRAMEID"> 
//

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight);
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 'px';
  }
}
</script>


//
// satte jeg ind i den side iframen skal vise (i "head")
//

<script language="javascript" type="text/javascript">
function ifrHeight(){
  var t=document.body.scrollHeight;
  if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+4+'px';
  parent.synchronizeElms()
}
</script>

//
// mine to menu'er som er lavet i "table" gav jeg id'erne:
// id="left" og id="right"
//
Avatar billede roenving Novice
25. september 2004 - 09:02 #13
Hrm, har du ikke et link til den side, hvor du har implementeret det ?-)
Avatar billede zod Nybegynder
25. september 2004 - 13:35 #14
Avatar billede roenving Novice
25. september 2004 - 13:39 #15
Har du ikke glemt id="IFRAMEID" på iframe-tagget ?-)
Avatar billede zod Nybegynder
25. september 2004 - 18:27 #16
jo men det virker ikke ... hvilke koder vil du gerne se af mine sider
Avatar billede roenving Novice
26. september 2004 - 02:11 #17
<IFRAME border="0" id="IFRAMEID" name="Main" src="Forside.htm" scrolling="no" cellspacing="0" align="center" frameBorder="0" width="518" height="500" style="border-top: 1 solid; border-right: 0 solid; border-left: 0 solid; border-bottom: 1 solid; border-color:#000000;"></IFRAME>

-- er jo rigtigt nok, men du har jo så også sat den id på body-elementet, så iframen vil ikke blive opdaget overhovedet ...

Et id skal være absolut unikt, der må altså ikke være mere en een eneste af hver !-)
Avatar billede zod Nybegynder
26. september 2004 - 15:35 #18
det virker stadig ikke
Avatar billede roenving Novice
26. september 2004 - 15:38 #19
Der mangler jo også kaldet af ifrHeight !-)

<script language="javascript" type="text/javascript">
  function ifrHeight(){
    var t=document.body.scrollHeight;
    if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+4+'px';
    parent.synchronizeElms()
  }
  window.onload = ifrHeight;
</script>
Avatar billede zod Nybegynder
26. september 2004 - 15:52 #20
og hvor skal jeg sætte den ind ??
Avatar billede roenving Novice
26. september 2004 - 15:54 #21
Det er jo den kode, du har/skal have i Forside.htm !-)
Avatar billede zod Nybegynder
26. september 2004 - 15:57 #22
det er hlet galt prøv at gå ind og se
Avatar billede roenving Novice
26. september 2004 - 16:01 #23
Mærkværdigt, men når det er de 4px, må du også smide dem i synchronizeElms:

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight);
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 4 + 'px';
  }
}
</script>
Avatar billede zod Nybegynder
26. september 2004 - 16:38 #24
hvor skal det sættes ind
Avatar billede roenving Novice
26. september 2004 - 16:40 #25
Hvor den er i forvejen ...
Avatar billede zod Nybegynder
26. september 2004 - 16:42 #26
den gør det forkert de to menu'er skal være 100 længere hele tiden
Avatar billede roenving Novice
26. september 2004 - 16:51 #27
Aha ...
Avatar billede zod Nybegynder
26. september 2004 - 17:24 #28
hvad skal jeg så gøre
Avatar billede zod Nybegynder
27. september 2004 - 14:42 #29
er du der
Avatar billede roenving Novice
27. september 2004 - 14:53 #30
F.eks.

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight-((i==2)?0:100));
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 4 + ((i==2)?0:100) + 'px';
  }
}
</script>
Avatar billede roenving Novice
27. september 2004 - 14:54 #31
Uff, den skal være lig med 1 !-)

<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0;
  for(i=0;elms.length>i;i++){
    maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight-((i==1)?0:100));
  }
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 4 + ((i==1)?0:100) + 'px';
  }
}
</script>
Avatar billede zod Nybegynder
28. september 2004 - 20:48 #32
hvordan ændre man mellemrummet menu og iframe??


kna man ikke fjerne den afstand der er mellem sluttnigen af siden og border'eren??
Avatar billede roenving Novice
29. september 2004 - 01:17 #33
Mellemrummet ?-)

Og afstanden kan sikkert ændres bare ved at sætte border på body til 0 !-)
Avatar billede zod Nybegynder
29. september 2004 - 15:45 #34
hmm... detforstod jeg ikke men opdagede lige noget andet, lige nu bliver siden ikke lille igen..

lad mig uddybe! hvis du klikker på et link som fylder mere end den forige side bliver siden aoutomatisk længere (perfekt) men siden bliver derimod ikke mindre! hvordan gør man det
Avatar billede roenving Novice
29. september 2004 - 15:55 #35
<script type="text/javascript">
var elms = ['left','IFRAMEID','right'];

function synchronizeElms(){
  var maxH = 0,startH=440;//Indsæt menuernes starthøjde;
  if(document.getElementById(elms[1]).offsetHeight>startH-100){
    for(i=0;elms.length>i;i++){
      maxH = Math.max(maxH,document.getElementById(elms[i]).offsetHeight-((i==1)?0:100));
    }
  }else maxH = startH;
  for(i=0;elms.length>i;i++){
    document.getElementById(elms[i]).style.height=maxH + 4 + ((i==1)?0:100) + 'px';
  }
}
</script>
Avatar billede zod Nybegynder
29. september 2004 - 16:22 #36
der er ikke kun 100 height afstand der er meget mere nu, hvad gør man ved det ??
Avatar billede zod Nybegynder
03. oktober 2004 - 12:16 #37
hallo er du der
Avatar billede zod Nybegynder
07. oktober 2004 - 20:41 #38
er du der roenving,
Avatar billede zod Nybegynder
09. oktober 2004 - 15:04 #39
lukker snart
Avatar billede zod Nybegynder
31. oktober 2004 - 11:47 #40
lukker
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



Seneste spørgsmål Seneste aktivitet
I går 17:57 Outlook Af ole1949 i Office & Kontorpakker
I går 17:41 windows cd er ønskes Af bjarnebif i Andet software
I går 17:39 Smartcard Af melli i Fjernsyn & projektorer
I går 15:07 Sammenlægning af partitioner Af Malm i PC
I går 13:59 Lopslag Af Casmic i Excel




Læses lige nu