Toon posts:

[JS] 'variabele iframe' (?)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een iframe die automatisch resized kijkend naar de content van dat iframe. Daarbij heb ik dit stukje code, werkt verder allemaal perfect.

code:
1
2
3
4
5
6
7
<script language="javascript">

function setHeight(howhigh)
{
document.getElementById('groot').height = howhigh;
}
</script>


Nu heb ik meerdere iframes, en vroeg ik me af hoe ik deze in de code verwerkt krijg (JS n00b). 'groot' is dus een van de iframes. 'klein' heb ik ook nog. Als ik deze code dus voor allebei de iframes wil gebruiken kan ik dan iets van 'groot;klein' gebruiken?

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 23-04 20:59

JSchut

.....

stuur de naam mee van het iframe

uit me hoofd:

code:
1
2
3
4
5
6
7
<script language="javascript">

function setHeight(howhigh,iframe)
{
document.getElementById(eval(iframe)).height = howhigh;
}
</script>


aannemende dat jij in jou code groot als naam voor je iframe gebruikte

PSN jschut_82 | Xbox: JSchut82


Verwijderd

Topicstarter
nu snap ik hem nog niet |:(

hoe wordt het dan als ik 'groot' en 'klein' erin wil hebben?

code:
1
2
3
4
5
6
7
<script language="javascript">

function setHeight(howhigh,groot)
{
document.getElementById(eval(groot)).height = howhigh;
}
</script>

Verwijderd

Topicstarter
Het bovenstaande probleem heb ik nog niet opgelost gekregen. Ik heb nu gewoon 2 keer de code achter elkaar gebruikt. Werkt ook, maar ik vind het netter om 1 keer de code te gebruiken met 2 verwijzingen naar de iframes erin. Dit is het bovenstaande probleem. En dan krijg ik meteeen het volgende probleem.

Het gaat om http://www.freestyle-design.nl/calella/

Ik maak gebruik van 2 iframes die automatisch resizen kijkend naar de groote van de geladen pagina. Voor de iframes gebruik ik dus de code:

code:
1
2
3
4
5
6
7
<script language="javascript">

function setHeight(howhigh)
{
document.getElementById('groot').height = howhigh;
}
</script>


De pagina's die in de iframes geladen moeten worden bevatten:

code:
1
2
<body STYLE="background-color:transparent" 
topmargin="0" leftmargin="0" onload="parent.setHeight(document.body.scrollHeight)">


Nu werkt dus die resize maar in 1 iframe. Ligt dat aan de onload functie? Zo ja, hoe dit op te lossen zodat allebei de iframes resizen.

Verwijderd

Een oplossing die alleen in IE5.5+ Win32 only werkt is deze:
code:
1
<body onload="window.frameElement.height=document.body.scrollHeight">

edit:
Ik kreeg een foutje op m'n Mac. Bij getElementById moet je een id meegeven, niet een name (op windhoos werkt dit kennelijk)...

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 23-04 20:59

JSchut

.....

wat ik al eerder zei :

code:
1
2
3
4
5
6
7
<script language="javascript">

function setHeight(howhigh,iframe)
{
document.getElementById(eval(iframe)).height = howhigh;
}
</script>


en dan aan roepen met:

code:
1
2
setHeight(howhigh,'groot');
setHeight(howhigh,'klein');

PSN jschut_82 | Xbox: JSchut82


Verwijderd

Het probleem bij deze oplossing is, dat de HTML in het IFrame niet zichzelf resized, maar de gene die je noemt. Maw: Bestand A roept setHeight(12,'groot') aan. Dit werkt als het bestand A in het groot-iframe geladen wordt, maar NIET in klein-iframe.

Oplossing is natuurlijk om via de querystring de iframe-name mee te geven :)
Pagina: 1