Hallo,
hab mal wieder ein Problem.
Ich hab auf meiner index.html einen Iframe, welcher automatisch an die Auflösung der User angepasst werden soll.
Das funktioniert auch soweit.
PHP-Code:
function aufloesen(site){
parent.frames[0].location.href = site;
document.getElementById('iframe').style.width = screen.availWidth - 200 + 'px';
if ( !document.all ) {
var derframe = document.getElementById('iframe').contentDocument.body.offsetHeight;
alert(derframe);
document.getElementById('iframe').style.height = derframe + 'px';
} else if( document.all ) {
var derframe = document.frames('inhalt').document.body.scrollHeight;
document.getElementById('iframe').style.height = derframe + 'px';
}
}
Die Funktion hab ich teilweise aus dem Netz und etwas abgeändert.
Sie funktioniert aber leider nicht richtig, was zu meinem problem führt.
Mein Iframe:
PHP-Code:
<iframe id="iframe" src="hp.html" name="inhalt" frameborder="0" style="width: 800px; height: 800px;" scrolling="no">
<p>Ihr Browser kann leider keine eingebetteten Frame
Sie können die eingebettete Seite über den folgenden Verweis
aufrufen: <a href="Startseite">SELFHTML</a></p>
</iframe>
Und so sehen meine Links aus:
PHP-Code:
<div><a onclick="aufloesen('hp.html')" href="hp.html" target="inhalt">FAQ</a></div>
<div><a onclick="aufloesen('flash.html')" href="flash.html" target="inhalt">Flash</a></div>
Was macht die Funktion?
Sie passt bei aufruf der Webseite richtig die Höhe des Iframes an damit ich keine 2 Scrollbalken habe.
Dazu nimmt die Funktion die "Höhe" ,1082px, der Datei hp.html und setzt den Iframe auf diese Größe.
Wenn ich nun auf Flash klicke, sollte die Funktion eigentlich die Höhe der Datei flash.html (40px) nehmen, tut es aber nicht. Es wird zwar der Inhalt dieser Datei angezeigt bei einmaligem klicken auf den Link, aber mit der Höhe 1082px, also von der vorherigen Datei hp.html. Erst wenn ich ein zweites mal auf den Link zur Flash Datei klicke wird mir dieser Inhalt mit der Größe der Datei angezeigt, also mit 40px.
Aber ich versteh nicht wieso?
Wenn ich einmal klicke, wird zwar der Inhalt korrekt angezeigt, aber
PHP-Code:
parent.frames[0].location.href = site;
wird anscheinend von JS nicht wahr genommen beim ersten klick.
Bei einmaligen klicken wird mir der Inhalt der neuen Datei, aber die Größe der alten Datei angezeigt und beim 2ten Klick Inhalt und Größe der neuen Datei.
Kann mir wer sagen wieso?
MfG