Archief - HTML/JS: probleem met FF 1.5

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

carloz

Legacy Member
hallo

ik heb een website met een navigationpanel bovenaan, iframe in midden en footer onderaan. In de iframe toon ik de pagina die overeenkomt met de link waarop geklikt werd in het navigatiepaneel.
Deze pagina's hebben allen een verschillende grootte en het is de bedoeling dat de hoogte van de iframe aangepast wordt naargelang de grootte van de webpagina die er in moet.
Dat doe ik met volgend stukje jscript:
(mijn kennis van jscript is vrij beperkt)
Code:
<script type="text/javascript">
function berekenHoogte()
{
//opvragen hoogte van pagina in iFrame
var hoogte = document.getElementById('myframe').contentWindow.document.body.scrollHeight;

//voor firefox is het beter dat je nog 20pixels bijtelt bij de hoogte
if(navigator.appName != "Microsoft Internet Explorer")
	hoogte = hoogte + 20;
//aanpassen hoogte van iFrame
document.getElementById('myframe').height = hoogte;
			}
</script>

in de iframe komt dan
Code:
<iframe src="home.htm" width="100%" name="inhoud" id="myframe" onLoad="berekenHoogte();" frameborder="0" scrolling="no"></iframe>

dit werkt allemaal netjes in IE en FF < 1.5
Het probleem is dat het niet werkt met FF 1.5

Het probleem bij de 1.5 is:
als ik een pagina in de iframe laad met een grote hoogte en daarna een pagina met kleine hoogte, dan blijft de iframe de grote hoogte behouden. Omgekeerd: eerst kleine en dan grote pagina geeft geen probleem, de iframe wordt netjes aangepast.

Kan iemand me helpen met mijn probleem?

BertG

Legacy Member
hmm, die onload is niet W3C valid... zou daar dus niet mogen staan link

Dus dat het al gebeurt verbaast me :p

Oplossing... waneer je de iframe aanspreekt kan je een scriptje mee afvuren dat je hoogte pas doet berekenen na dat de page terug geload is binnen je Iframe

of je kan je paginas binnen je iframe hun parent frame (je site zelf dus) laten resizen.

carloz

Legacy Member
BertG zei:
Oplossing... waneer je de iframe aanspreekt kan je een scriptje mee afvuren dat je hoogte pas doet berekenen na dat de page terug geload is binnen je Iframe

of je kan je paginas binnen je iframe hun parent frame (je site zelf dus) laten resizen.

ah k merci!
en hoe zou je dat doen? (ik heb niet veel kaas gegeten van webdesign ed.)
Optie 1 is de beste wsl? Dan moet ik dat scriptje maar 1x schrijven.
In optie 2 zou ik het voor iedere pagina moeten kopiëren

BertG

Legacy Member
idd,

Het hoe is natuurlijk een probleem aangezien je script moet wachten tot je iframe weer geladen is...
ik heb daar ooit es een oplossing voor gevonden, maar denk dat het eerder "dirty-coding" is

Code:
function iframeResize() {
  if (document.getElementById('myframe').contentWindow.document.body == null) {
    setTimout('iframeResize()', 10);
  } else {
    berekenHoogte();
  }
}
die functie (ongeveer) zou je dus moeten doen uitvoeren bij de links die je frame doen veranderen.
Het princiepe is dat hij om een 10de van een seconde gaat kijken of de body van het document in de frame al bestaat.

nogmaals, volgens mij is dit geen goede oplossing, maar het zou moeten werken.

carloz

Legacy Member
BertG zei:
idd,

Het hoe is natuurlijk een probleem aangezien je script moet wachten tot je iframe weer geladen is...
ik heb daar ooit es een oplossing voor gevonden, maar denk dat het eerder "dirty-coding" is

Code:
function iframeResize() {
  if (document.getElementById('myframe').contentWindow.document.body == null) {
    setTimout('iframeResize()', 10);
  } else {
    berekenHoogte();
  }
}
die functie (ongeveer) zou je dus moeten doen uitvoeren bij de links die je frame doen veranderen.
Het princiepe is dat hij om een 10de van een seconde gaat kijken of de body van het document in de frame al bestaat.

nogmaals, volgens mij is dit geen goede oplossing, maar het zou moeten werken.

als dit dirty-coding is, kan je me dan een andere oplossing voorstellen die "niet-dirty" is?

BertG

Legacy Member
waarschijnlijk wel, maar dan zou ik te lang moeten zoeken :)
Die oplossing werkt volgens mij wel, dus die kan je gebruiken... en intussen kan je zelf het probleem proper oplossen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan