Hi,
habe hier einen verblüffenden Effekt. Im iframe werden Veranstaltungstermine angezeigt. Nun scrolle ich runter und kann unten auf die Schaltfläche
nächste Seite 2
klicken.Die erscheint auch, aber - da die parent-Seite nichts mitbekommt - ich schaue auf das Ende der Seite 2 anstatt auf den Anfang.
Gibt's da eine Möglichkeit, innerhalb des iframe auf den Anfang zu positionieren?
ja, verzichte auf die Spielerei, mit Javascript die Höhe des Elternfensters anpassen zu wollen. Tut man das nämlich nicht (z.B. weil Javascript deaktiviert ist), verhält sich das Seiten-Gefüge ganz normal: Man scrollt im iframe nach unten, klickt auf den Next-Page-Button, die nächste Seite wird geladen und steht, wie erwartet, am Seitenanfang.
Ich dachte deshalb zunächst, das von dir beschriebene Verhalten könnte browserspezifisch sein und hab's stattdessen mal im Firefox versucht (der darf Javascript). Und da irritierte mich, dass der Scrollbalken des iframe plötzlich verschwand, als der iframe-Inhalt fertig geladen war, dafür hatte des Elterndokument plötzlich einen.
Und dann passiert genau das, was du beschrieben hast. Im iframe wird ein neues Dokument geladen, das Elterndokument kriegt davon aber nichts mit und bleibt an seiner momentanen Scroll-Position (ganz unten) stehen.
Mögliche Abhilfe:
a) Wie schon beschrieben, die Höhenanpassung weglassen. Und wenn man sie schon macht, müsste man sie nach jedem Laden einer neuen Seite im iframe erneut machen, weil die Höhe der Dokumente im iframe immer unterschiedlich ist.
b) Nach dem Laden des Dokuments im iframe (z.B. als Reaktion auf das load-Event im iframe) die Scroll-Position des Elternfensters wieder auf 0 setzen.
c) Auf die Teilung der Inhalte ganz verzeichten und die Einbettung serverseitig vornehmen, anstatt per iframe. Das wäre für mich die bevorzugte Lösung.
Schönen Sonntag noch,
Martin
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy