iPhone - Safari springt bei "Zurück" immer an den Seitenanfang

M

Macinflosh

Aktives Mitglied
Thread Starter
Dabei seit
20.06.2023
Beiträge
101
Reaktionspunkte
39
Hallo,

bei meinem iPhone 6s hatte ich das Problem, bei meinem neuen iPhone 14 Pro ebenfalls.

Bei sehr vielen Internetseiten (nicht bei allen, aber bei ca. 70% der Seiten die ich besuche), nehmen wir einfach mal www.welt.de springt Safari, wenn ich den "Zurück-Pfeil" drücke oder auch zurück swipe nicht an die Stelle, wo entsprechender Link geöffnet wurde, sondern immer gaaaaaaanz nach oben zum Seitenanfang. Davor wird die Seite jedesmal neu geladen. Das ist supernervig und bei meinem iPhone 6s dachte ich: "Ach, es ist halt alt und vergesslich, es weiß nicht mehr, wo ich auf der Seite bin" (so wie bei meiner Oma, wenn sie ihre Puschen sucht) ... aber beim iPhone 14 Pro mit dem aktuellsten iOS verhält sich Safari exakt auch so. Browsererweiterung sind nicht installiert.

Kann man dieses Verhalten ändern? Vielleicht in den umfangreichen "Entwicklereinstellungen"? Wenn ich auf einer umfangreichen Seite surfe, bspw www.welt.de oder www.gala.de und ich klicke einen Artikel (Link) an, dann kommt der Artikel und dann gehe ich wieder zurück und Safari springt nach oben und man muss wieder runterscrollen und suchen, wo man zuletzt war. Ich öffne Links daher nur noch in neuen Tabs, was aber sehr unbequem ist.

Mit Chrome (glaub ich) das gleiche Problem, so ich glaub ich mal vor ein paar Monaten ausprobiert zu haben. Aber ich bin mir nicht sicher.
An meinem iMac hingegen wird immer brav zurück gesprungen, beim iPhone hingegen nicht.

In einem englischen Forum meine ich irgendwo irgendwann mal gelesen zu haben, dass das Problem bekannt ist.

Ich möchte, dass Safari bei "Zurück" an die Stelle geht, wo ich zuvor war bevor ich den Link geöffnet habe. Wie es auch weltweit üblich ist.

Ich freue mich über Hilfe! DANKE
 
Zuletzt bearbeitet:
Hallo @Macinflosh

An meinem iPhone 13 Pro (iOS 16.5.1) kann ich das nicht reproduzieren.
Habe welt.de geöffnet, etwas heruntergescrollt, dann weitergesurft auf tagesschau.de, ebenso runtergescrollt.
Egal wie ich vor und zurückspringe – ja, oft wird die Seite neu geladen, aber ich lande immer in der gleichen Höhe.
Vielleicht musst du einfach zwei Sekunden länger warten und siehst dann, dass du an die richtige Stelle gesprungen bist?

Safari finde ich einen super Browser und Probleme, wie du sie schilderst, hatte ich maximal an meinem iPad 7. Generation, also deutlich entfernt von moderner Rechenperformance.

Wie dieses Problem nun auf dem neuesten iPhone 14 Pro zustandekommt, erschließt sich mir nicht.

LG
Killerkaninchen
 
Webkit „erlaubt“ anscheinend immer noch nicht (wieder) die History.back()-Session zu benutzen.
Einerseits soll das ein Sicherheitsfeature sein, andererseits ergibt das leider diese Problematik.

Die History.back()-Session ist auch eine Art Cache, den man mit Javascript bsw. benutzen, abrufen oder auch ändern kann.
Das ist so oft praktisch, birgt aber auch mögliches Mißbrauchspotential.

Infos Beispiel:
https://bugs.webkit.org/show_bug.cgi?id=248303
https://gomakethings.com/fixing-safaris-back-button-browser-cache-issue-with-vanilla-js/

edit: siehe auch

Session history management
Method of manipulating the user's browser's session history in JavaScript using history.pushState, history.replaceState and the popstate event.
https://caniuse.com/history
 
Ich kann das genannte Verhalten auf einem iPhone 12 pro ebenfalls nicht nachvollziehen. Safari springt immer an die richtige Stelle zurück.
Allerdings:
Mit meinem Desktop-Safari (aktuelle Version) kann ich das vom TE beschriebene Verhalten nachvollziehen:
Bei extrem bilderreichen Webseiten wie z.B Deviantart kann ich auf ein Bild klicken und gerate auf eine vergrösserte Darstellung davon und/oder auf das Profil des Künstlers... swipe ich dann zurück auf die Ursprungsseite, bin ich meist wieder am Anfang der Seite, aber nicht immer. Manchmal funktioniert es auch. Das Verhalten ist nicht "klassisch" reproduzierbar, da es ja manchmal funktioniert. Ich kann einen solchen o.g. "Workflow" mit genau dem gleichen Bild mehrmals hintereinander machen und es ist so, dass ich beim Zurückwischen manchmal wieder am "richtigen" Ort lande... oder auch wieder oben an der Seite.
Einen Reim darauf kann ich mir nicht machen.
 
Zuletzt bearbeitet:
Safari unterstützt scrollRestoration nicht bei Anker-Links.
Und kann/darf die Position nicht in der Browser-History anlegen, ergo auch nicht abrufen.

Und auch:
Die Bildlaufposition wird in mobilen Safari-Browsern beim Neuladen einer Seite nicht beibehalten.
Dies ist auf die Verwendung des beforeunload-Ereignisses zurückzuführen, das von ios safari nicht unterstützt wird.

Daher bedarf es da bei der Umsetzung von Websites für mögliche Bereiche der Seiten-Navigation workarounds,
damit Safari es bei bestimmten Situationen „kann“.
Der Standard funktioniert mit anderen Browser-Engines.

Hier zum Beispiel zum Safari iOS:
https://github.com/remix-run/react-router/issues/9463
Demo: https://codesandbox.io/s/react-router-dom-scrollrestoration-w3k9y7?file=/src/App.tsx

Man könnte also auch den „page scroll wert“ des Users in einem Cookie speichern, sofern Session-Cookies erlaubt sind/werden.
Die html5-spec sagt:
Ein Modus zur Wiederherstellung des Bildlaufs gibt an, ob der User-Agent die gespeicherte Bildlaufposition (falls vorhanden) wiederherstellen soll, wenn er zu einem Eintrag wechselt. Der Modus für die Wiederherstellung des Bildlaufs ist einer der folgenden:

"auto" Der User-Agent ist für die Wiederherstellung der Bildlaufposition bei der Navigation verantwortlich.
"manuell" Die Seite ist für die Wiederherstellung der Bildlaufposition verantwortlich, und der Benutzer-Agent versucht nicht, dies automatisch zu tun.
Es wird also die Bildlaufposition praktischerweise auf „manual“ gesetzt, was Safari aber nicht bzw. anders interpretiert –
und obendrauf sogar nur bei und zu bestimmten weiteren Bedingungen des „popstate event“.
Das geht halt manchmal gut, oftmals aber nicht, da die Safari history.events nicht nachträglich geändert werden dürfen (schon gar bei & mit urls).
Dieser „Bug“ besteht seit Jahren und wird mit „touch und swipe“ nicht einfacher.

Einfacher kann ich es gerade nicht erklären. :teeth:

Quelle: https://stackoverflow.com/questions...al-doesnt-prevent-safari-from-restoring-scrol
 
Vielen Dank für alle Antworten: Das Problem ist auf jeden Fall da und rekonstruierbar. Das Problem dürfte auch bekannt sein, vgl. auch https://forums.macrumors.com/threads/safari-scrolls-to-the-top-when-i-go-back-a-page.2307173/
oder
https://github.com/Shopify/dawn/issues/1449

Das Problem entspringt somit nicht meiner Fantasie oder meinem Unvermögen, einen Browser zu benutzen. :alien:

Die technischen Erläuterungen hier sind gewiss zutreffend, doch was kann ich als Laie konkret tun, um dieses Safari Verhalten zu ändern? Kann ich konkret irgendwo was aktivieren oder deaktivieren, damit Safarie bei "Zurück" an der Stelle bleibt, wo man den Link angeklickt hat?
 
Hi,
Nein, da kannst du nichts "machen", das ist eine seltsame Programmierung von Apple im Safari, da hilft nur, einen anderen Browser zu verwenden.
Franz
 
Habe das gleiche Problem.
Die Lösung: Mit dem Finger die (nach dem Zurückblättern) angezeigte Seite "fixieren", bevor diese nach oben "springt".
Etwas nervig, aber ich habe mich daran gewöhnt.
 
Zurück
Oben Unten