Script macht den back button kaputt
Fritz
- javascript
Hallo,
(ja, ich habe die Frage vor kurzem schon einmal gestellt,
http://forum.de.selfhtml.org/archiv/2006/1/t122702/#m789337
aber wohl das Thema so unglücklich gewählt, und die Frage so unglücklich formuliert, daß keine Antwort kam, die den Kern meiner Frage betraf.)
Auf http://www.kryogenix.org/code/browser/smoothscroll/ gibt es ein Script, mit dem seiteninterne Verweise sanft angescrollt werden.
Leider macht dieses Script den back button des Browsers kaputt, d.h. nach dem "Anscrollen" (statt wie üblich Anspringen) führt die browserinterne Zurück Funktion nicht mehr zum Ursprung des Scrollens (Sprungs) zurück.
Ich finde leider keinen Ansatz, wie ich dem Script diese Untugend austreiben könnte. Ach ja, und Stuart Langridge, der Urheber, anscheinend auch nicht; zumindest hat er sich auf eine entsprechende Anfrage nicht gemeldet.
Gruß Fritz
Hallo Fritz,
(ja, ich habe die Frage vor kurzem schon einmal gestellt,
http://forum.de.selfhtml.org/archiv/2006/1/t122702/#m789337
aber wohl das Thema so unglücklich gewählt, und die Frage so unglücklich formuliert, daß keine Antwort kam, die den Kern meiner Frage betraf.)
Ich fand die antworten auf deine Frage sehr konkret. Aber nichtsdestotrotz: Wenn Du denkst, Deine Frage konkretisieren zu müssen, tue das besser im selben Thread wie dein Urspungs-Post. Es erleichtert in Zukunft Usern mit den gleichem Problem die Suche.
Ich finde leider keinen Ansatz, wie ich dem Script diese Untugend austreiben könnte.
Das ist genau ein Problem, welches fast jede Navigation mit JavaScript hat - die natürlichen Funktionen eines Browsers (Back-Button u.ä.) werden da ausgehebelt.
Man muss sich überlegen, ob einem ein funktionierer Back-Button oder der JavaScript-effekt mehr wert ist.
Mir ist für das Problem auch keine sinnvolle Lösung bekannt, jedenfalls ist das ein Tradeoff, mit dem ich auf der Arbeit sehr häufig zu kämpfen habe, und wo ich fast immer Kompromisse eingehen muss.
Hallo,
Wenn Du denkst, Deine Frage konkretisieren zu müssen, tue das besser im selben Thread wie dein Urspungs-Post.
Geht das denn auch bei archivierten Beiträgen, wie in diesem Fall?
Man muss sich überlegen, ob einem ein funktionierer Back-Button oder der JavaScript-effekt mehr wert ist.
Nein, da gibt es nichts zu überlegen: Ein Script, das die Funktionalität des UA kaputt macht, kommt schlicht nicht in Frage.
Mir ist für das Problem auch keine sinnvolle Lösung bekannt,
Schade.
...und wo ich fast immer Kompromisse eingehen muss.
Nicht so in diesem Fall: Das Script will die usability verbessern, und verschlimmbessert leider.
Die Frage also noch einmal:
Gibt es eine Lösung, _dieses_konkrete_Script_ so zu optimieren, daß der back button nicht kaputt gemacht wird?
Gruß Fritz
Hi,
Gibt es eine Lösung, _dieses_konkrete_Script_ so zu optimieren, daß der back button nicht kaputt gemacht wird?
Leider fehlt mir z.Zt. die Muße, das mal zu probieren. Prinzipiell sollte ein (ggf. übler) Workaround machbar sein. Denn ein JS wird auch beim Aufruf der Seite mittels BButton ausgeführt. Mithin sollte man den Browser zu allem bewegen können - und sei es, daß man, nach Auslesen des URLs, ihn zu einem Sprung auf einen bestimmten Anker zwingt.
Gruß, Cybaer
Hallo,
Hi,
Gibt es eine Lösung, _dieses_konkrete_Script_ so zu optimieren, daß der back button nicht kaputt gemacht wird?
Leider fehlt mir z.Zt. die Muße, das mal zu probieren.
Verlang ich ja auch nicht ;-) Ein Hinweis, wie der folgende, damit ich weiß, wo ich ansetzen könnte, ist schon hilfreich
Prinzipiell sollte ein (ggf. übler) Workaround machbar sein. Denn ein JS wird auch beim Aufruf der Seite mittels BButton ausgeführt.
Gibt es ein event, das gleichermaßen "Betätigung der Zurücktaste auf der Tastatur" _und_ "Klick auf die Zurück-Schaltfllche des Browsers" abfängt?
Mithin sollte man den Browser zu allem bewegen können - und sei es, daß man, nach Auslesen des URLs, ihn zu einem Sprung auf einen bestimmten Anker zwingt.
Ist zwar nicht die Funktionalität des back buttons, könnte aber u.U. als fallback dienen. Ideal wäre naturlich, die Position im Dokument vor dem Auslösen der Scrollerei auszulesen und dorthin zurückzuspringen.
Gruß Fritz
Hi,
Gibt es ein event, das gleichermaßen "Betätigung der Zurücktaste auf der Tastatur" _und_ "Klick auf die Zurück-Schaltfllche des Browsers" abfängt?
? Es gibt keinen "Back-Button-Event", falls Du das meinst.
Ob eine Seite per Back-Button oder erstmalig angesteuert wurde, kannst Du so erstmal nicht ermitteln.
Ideal wäre naturlich, die Position im Dokument vor dem Auslösen der Scrollerei auszulesen und dorthin zurückzuspringen.
Ideal wäre es, möglichst wenig selbst zu machen. ;-)
Position: pageYOffset bzw. scrollTop
Gruß, Cybaer
Hallo,
Ideal wäre es, möglichst wenig selbst zu machen. ;-)
Wie wahr!
Position: pageYOffset bzw. scrollTop
Ja, klar, danke.
Aber:
? Es gibt keinen "Back-Button-Event", falls Du das meinst.
Und wenn ich jetzt eine eigene Schaltfläche oder einen Link einfügen muß, um Position s.o. anzuspringen, dann greift wieder:
Ideal wäre es, möglichst wenig selbst zu machen. ;-)
und da beißt sich die Katze in den Schwanz.
Und ich dreh mich mit der Katze gemeinsam im Kreis :-(
Gruß Fritz
Hi,
Und wenn ich jetzt eine eigene Schaltfläche oder einen Link einfügen muß, um Position s.o. anzuspringen,
Deswegen ja der Vorschlag, "mitzuprotokollieren". So (und unter Zuhilfenahme von history()) kannst Du dich der Frage nähern, ob der Back-Button oder ein erstmaliges Laden verantwortlich ist. Außerdem kannst Du ggf. die Scrollposition zuhilfe nehmen.
Alles krude, alles nicht 100-prozentig. Aber offensichtlich ist das Smooth-Scrolling aus der Rubrik "Browser-*Experimente*" ja auch krude und nicht 100-prozentig. ;->
Gruß, Cybaer