Rücksprung an bestimmte Position.


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

clamicun

Mitglied
Es gibt mehrere Buttons auf Seite1, die Seite2 (_self) öffnen, um zu dem Thema ausführlichere Info zu liefern.

Auf der geöffneten Seite2 ist ein Knopf zur Rückkehr auf Seite1 d.h. beim Rücksprung wird wieder der Anfang der Seite1 gezeigt.
Das möchte ich verhindern.

Gibt es irgendeine Methode, den "Zustand" die "Scrollposition" oder "was auch immer" zu speichern, um genau an diese Position zurückzuspringen ?
 

Technipion

Erfahrenes Mitglied
Hallo clamicun,
naja, HTML unterstützt ja Anker (engl. anchor). Man kann damit z.B. Links per # (hashtag) zu einem bestimmten Element der Seite springen lassen. Hast du z.B. eine Überschrift <h1 id="headline">Blubb</h1> irgendwo, kannst du mittels <a href="#headline">Zu Blubb</a> darauf verlinken.
Im Prinzip musst du dir jetzt also nur deine "Position" als Argument in der URL mitgeben und dann beim Zurückspringen von Seite2 zu Seite1 an der richtigen Stelle einhaken.

Gruß Technipion
 

Sprint

Erfahrenes Mitglied
Eine andere Möglichkeit wäre, beim Rücksprung statt des Links zur anderen Seite den Rückschritt Button des Browsers zu simulieren window.history.back(). Denn die meisten Browser springen an die Position auf einer Seite zurück, an der sie vorher waren.
 

clamicun

Mitglied
Technipion
HTML unterstützt ja Anker (port. âncora) ...

irgendwo !!!, kannst du mittels <a href="#headline">Zu Blubb</a> darauf verlinken ...

Im Prinzip !!! musst du dir jetzt also nur !!! deine "Position" als Argument in der URL mitgeben ...

Verzeihung, ein Meisterwerk einer absolut nicht hilfreichen Antwort.
Genau danach habe ich gefragt ... Wie ?
 

clamicun

Mitglied
Das scheint eine gute Idde zu sein, wenn window.history.back() an die richtige Position springt ... "Die meisten Browser" hört sich nicht gut an
 

Sprint

Erfahrenes Mitglied
So ist es aber leider nun mal, daß nicht alle Browser gleich reagieren. Lad dir doch mal die gängigsten Browser Firefox, Chrome, Safari und IE auf deinen Rechner und probier es aus. Bei älteren Versionen KANN es natürlich sein, daß die anders reagieren, aber irgendwann muß man sich dazu durchringen, nicht mehr jeden noch so alten oder seltenen Browser unterstützen zu wollen und können.

Die Idee von Technipion ist auch nicht blöd, funktioniert aber nur, wenn es exakt einen Vor- und einen Rückbutton gibt. Bei mehreren Links funktioniert das unter reinem HTML nicht mehr. Dann müßte der übergebene Anker per PHP ausgewertet werden und vor Auslieferung der Seite an den entsprechenden Stellen eingesetzt werden. Dann hättest du natürlich ein recht elegantes universelles Instrument. Vielleicht ginge das auch per JS, aber das ist nicht unbedingt meine Stärke.
 

Technipion

Erfahrenes Mitglied
Ich weiß, dass jeder mal einen schlechten Tag hat clamicun. Ich bitte dich nur daran zu denken, dass ich dir innerhalb von 20 Minuten geantwortet habe und das von meiner persönlichen Freizeit abgeht. Ich werde dafür nicht entlohnt.

Nochmal zum eigentlichen Problem:
Die Idee mit window.history.back() ist prinzipiell ganz nett, aber eine der Grundregeln der Webprogrammierung ist: Vertraue niemals dem Browser! Du möchtest ein bestimmtes Verhalten erzwingen, gibst aber sämtliche Kontrolle an den Browser ab. Keine gute Idee, ne? Läuft vielleicht Jahre gut, oder auch nicht. Wer weiß schon was irgendein mobiler Browser vielleicht in 6 Monaten für ein Update herausbringt...

Natürlich ist das Springen zu bestimmten Elementen der Website ein schon lange bekanntes Problem. Daher gibt es ja in HTML die Anker (engl. anchor = dein Begriff zum Googeln für weitere Vertiefung).
Wenn du an einer Website arbeitest sollte dir eigentlich klar sein, dass:

<h1 id="headline">Blubb</h1> eine Überschrift Level 1 erzeugt mit der Identifikation "headline"

<a href="#headline">Zu Blubb</h1> ein Link ist, der auf der gleichen HTML-Seite auf o.g. Überschrift verweist.

Solche Elemente stehen typischerweise im <body>.

Mit HTML alleine wirst du allerdings dein Problem nicht lösen können. HTML ist lediglich eine Markup Language, also eine Auszeichnungssprache (= was steht wo und sieht wie aus). Es gibt keine dokumentübergreifende Funktionen. Allerdings benutzt heute praktisch kein Mensch noch reines HTML, sondern es sind fast immer PHP oder JavaScript involviert. Und die unterstützen die Weitergabe von Parametern über die URL. Damit kannst du dir quasi die Position des Clients "erhalten".

Falls dich das genauer interessiert, frag einfach nach. Ansonsten gehe ich davon aus, dass du die Browser-Zurück-Lösung genommen hast.

Gruß Technipion
 

clamicun

Mitglied
Technipion,
danke für die Erklärung ... Ja, ersteinmal bleibe ich bei der Browserlösung, denke aber über eine andere nach ...
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…