Nachträgliche Größenanpassung eines Iframes
MaxTheCB
- javascript
Hallo,
Nachdem ich nun fast eine Stunde auf der Suche nach der Lösung meines Problem kaum schlauer geworden bin, wende ich mich nun an Euch ;-)
Ich habe folgendes Problem :
Ich binde meine Seite per Iframe in eine andere andere ein. Nun ist dies dank dem IFrame Befehl soweit auch kein Problem, so lange ich die Länge der einzubindenden Seite kenne, und dementsprechend über height die Größe des Iframes definiere.
Nun kommt es aber vor, daß sich der Inhalt der eingebundenen Seite verlängert...folglich werden eben Scrollbalken sichtbar, oder der Rest einfach abgeschnitten.
Gibt es eine Möglichkeit, wie man erkennen lassen kann, ob das Iframe zu klein ist ?
Mein Denkansatz ging über die Scrollbalken, da man lt. Selfhtml deren Zustand über "scrolling" abfragen kann...
Mein bisheriges Script :
<script type="text/javascript"><!--
function resize(){
alert("Sprung erfolgt");
if (document.frame.scrolling == "yes"){
alert("Überlauf");
}else{
alert("Passt");
}
}
window.setTimeout("resize()",3000);
//--></script>
Leider kommt aber immer das falsche Ergebnis heraus...
Ganz speziell die Frage : Wie frage ich den Zustand der Scrollbalken richtig ab, und was sagt mir diese Antwort (Gibt die Antwort tatsächlich zurück, ob die Scrollbalken sichtbar sind, oder nur die Voreinstellung auto/yes/no)
Thx for help ;-)
Cu, Max
Hallo Max,
Ich binde meine Seite per Iframe in eine andere andere ein. Nun ist dies dank dem IFrame Befehl soweit auch kein Problem, so lange ich die Länge der einzubindenden Seite kenne, und dementsprechend über height die Größe des Iframes definiere.
Nun kommt es aber vor, daß sich der Inhalt der eingebundenen Seite verlängert...folglich werden eben Scrollbalken sichtbar, oder der Rest einfach abgeschnitten.
Du kannst die Größe des iframe seinem Inhalt per javascript anpassen.
Die Eigenschaften height, bzw. offsetHeight helfen dir dabei.
Das Dokument im iframe braucht erst mal eine ID.
Zum Beispiel: <body id=inhalt> Dann benötigt der iframe natürlich auch noch eine ID. <iframe id=foo name=foo ....>
Über: inh=parent.frames.foo.document.getElementById("inhalt");
greifst du auf das Dokument im iframe zu. inh.offsetHeight würde dir die Höhe des selbigen liefern.
Und ein: frame=window.document.getElementById("foo");
liefert dir eine Referenz auf den iframe. Über frame.height kannst du die Höhe des iframe manipulieren. (Zwar nicht in jedem Browser, aber in den verbreiteten)
Soweit alles klar? Viel Spaß dabei.
Jochen
Hi,
Danke erst mal für die Tipps...
Klappt leider nicht "Zugriff verweigert" beim Versuch den Inhalt des eingebundenen Frames auszulesen
Dies liegt soviel ich weiß wohl daran, daß die beiden Seiten auf verschiedenen URLs liegen...
Hallo,
Klappt leider nicht "Zugriff verweigert" beim Versuch den Inhalt des eingebundenen Frames auszulesen
Dies liegt soviel ich weiß wohl daran, daß die beiden Seiten auf verschiedenen URLs liegen...
ja, auch unter dem Begriff "same origin policy" bekannt. Du hast keine Chance mittels javascript auf Seiten von unterschiedlichen Servern zuzugreifen.
Grüße,
Jochen