Ich habe eine dynamisch (per PHP) generierte Seite. Diese Seite enthält mehrere Buttons zur Navigation (z. B. Vor/Zurück).
Konkret wird bei einem der Buttons das hier aufgerufen:
Entscheidend ist nun das "#navi" am Ende. Es gibt im HTML-Dokument ein Element mit der ID "navi". Dahin soll der Browser scrollen, nachdem die Seite durch den Navigationsbutton neu geladen wurde.
Das ist aber leider nicht der Fall.
Entferne ich die Ankerangabe aus der URL, so wird gar nicht gescrollt, die Seite ist nach dem Reload ganz oben. Soweit logisch. Gebe ich den Anker an, scrollt er ein bisschen, aber viel zu wenig. Er soll in meinem Fall ganz nach unten scrollen. Witzigerweise scrollt er aber korrekt, wenn ich danach in der Adresszeile des Browsers (Firefox 22.0) einfach Enter drücke.
Offensichtlich ist es so, dass er die Seite dann nicht neu lädt (weil er erkennt, dass die aufgerufene Seite exakt die selbe URL hat wie die neu angeforderte Seite). Ändere ich aber einen Parameter in der Adresszeile, so klappt das Scrollen wieder nicht (weil er dann die Seite neu lädt).
Woran liegt das? Warum scrollt der Browser nach dem Neuladen der PHP-Ausgabe nicht an die gewünschte Stelle?
Ich gehe davon aus, dass es irrelevant ist, ob es sich um eine PHP-Ausgabe oder um eine statische HTML-Seite handelt.
Konkret wird bei einem der Buttons das hier aufgerufen:
http://master/wbblite/meli_eingabe_medien.php?sid=&eingabeid=1&page=3&action=next#navi
Entscheidend ist nun das "#navi" am Ende. Es gibt im HTML-Dokument ein Element mit der ID "navi". Dahin soll der Browser scrollen, nachdem die Seite durch den Navigationsbutton neu geladen wurde.
Das ist aber leider nicht der Fall.
Entferne ich die Ankerangabe aus der URL, so wird gar nicht gescrollt, die Seite ist nach dem Reload ganz oben. Soweit logisch. Gebe ich den Anker an, scrollt er ein bisschen, aber viel zu wenig. Er soll in meinem Fall ganz nach unten scrollen. Witzigerweise scrollt er aber korrekt, wenn ich danach in der Adresszeile des Browsers (Firefox 22.0) einfach Enter drücke.
Offensichtlich ist es so, dass er die Seite dann nicht neu lädt (weil er erkennt, dass die aufgerufene Seite exakt die selbe URL hat wie die neu angeforderte Seite). Ändere ich aber einen Parameter in der Adresszeile, so klappt das Scrollen wieder nicht (weil er dann die Seite neu lädt).
Woran liegt das? Warum scrollt der Browser nach dem Neuladen der PHP-Ausgabe nicht an die gewünschte Stelle?
Ich gehe davon aus, dass es irrelevant ist, ob es sich um eine PHP-Ausgabe oder um eine statische HTML-Seite handelt.