Fritz: Script macht den back button kaputt

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

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de
  1. 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.

    1. 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

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de
      1. 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

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. 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

          --
          ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
          http://webdesign.weisshart.de
          1. 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

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. 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

              --
              ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
              http://webdesign.weisshart.de
              1. 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

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!