Jörg: kann javascript:history.back() auch mal 2 Seiten zurückspringen

Moin,
ich habe auf meiner HP sehr viele Pflanzenbeschreibungen zu der man
über die Auswahl botanischer/deutscher Namen gelangt. Über den Befehl
javascript:history.back() gelangt man immer auf die letzte Übersicht zurück.
Nun habe ich nachträglich mit dem Befehl onclick="window.open die
Möglichkeit geschaffen, sich Detailfotos der jeweilgen Pflanzenbeschreibungen
anzusehen. Sollte nun ein Besucher diese Möglichkeit nutzen und möchte danach
auf eine der Übersichtsseiten zurückspringen, versagt javascript:history.back().
Klickt man ein zweites drauf funktiioniert es. (Ich hoffe ich habe es
einigermaßen verständlich erklärt.
Meine Frage nun: Kann man javascript:history.back()so verändern, dass er
"merkt", dass er eine oder zwei Seiten zurückspringen soll?
Für einen Tipp möchte ich mich schon im voraus bedanken.
mit Grüßen von der heute etwas neblichen Westküste.
Jörg

  1. Meine Frage nun: Kann man javascript:history.back()so verändern, dass er
    "merkt", dass er eine oder zwei Seiten zurückspringen soll?
    Für einen Tipp möchte ich mich schon im voraus bedanken.
    mit Grüßen von der heute etwas neblichen Westküste.
    Jörg

    Es gibt history.go, dem kann man als Parameter angeben, wieviele Schritte vor oder zurück es gehen soll. Zwei Schritte zurück wäre also history.go(-2);

    Ich schätze aber, du hast noch ein anderes Problem: Wenn du ein neues Fenster öffnest, legt dieses Fenster auch eine neue History für sich an.

    Der Klickweg zum Fenster, so wie ich ihn verstanden habe:
    Startseite - Übersicht - Ein Eintrag - Details im Fenster.

    Der Weg zurück wäre:
    Fenster schließen (Ein Eintrag ist zu sehen) - History zurück (Das führt zur Übersicht).

    Das Fenster schließt der Benutzer durch die üblichen Fensterbuttons oben rechts, oder durch einen Link mit dem Javsscript self.close();

    Danach sollte die History normal funktionieren.

    Wenn ich komplett falsch liege, hast du dein Problem noch nicht erschöpfend genug erklärt. Bin aber sicher, wir finden eine Lösung. :)

    - Sven Rautenberg

    1. Meine Frage nun: Kann man javascript:history.back()so verändern, dass er
      "merkt", dass er eine oder zwei Seiten zurückspringen soll?
      Für einen Tipp möchte ich mich schon im voraus bedanken.
      mit Grüßen von der heute etwas neblichen Westküste.
      Jörg

      Es gibt history.go, dem kann man als Parameter angeben, wieviele Schritte vor oder zurück es gehen soll. Zwei Schritte zurück wäre also history.go(-2);

      Ich schätze aber, du hast noch ein anderes Problem: Wenn du ein neues Fenster öffnest, legt dieses Fenster auch eine neue History für sich an.

      Der Klickweg zum Fenster, so wie ich ihn verstanden habe:
      Startseite - Übersicht - Ein Eintrag - Details im Fenster.

      Der Weg zurück wäre:
      Fenster schließen (Ein Eintrag ist zu sehen) - History zurück (Das führt zur Übersicht).

      Das Fenster schließt der Benutzer durch die üblichen Fensterbuttons oben rechts, oder durch einen Link mit dem Javsscript self.close();

      Danach sollte die History normal funktionieren.

      Wenn ich komplett falsch liege, hast du dein Problem noch nicht erschöpfend genug erklärt. Bin aber sicher, wir finden eine Lösung. :)

      • Sven Rautenberg

      Moin Sven,
      erstmal vielen Dank für die Mühe. Es trifft wohl nicht den Kern meines Problemes. Ich möchte
      es gern mal an einem richtigen Beispiel erklären, sonst ist es wohl zu abstrakt.
      Wenn man über Pflanzenverkauf » Laubgehölze » sortiert botanisch/deutsch
      auf die Übersicht "A" gelangt und nun Acer campestre anklickt, öffnet sich die selbige Pflanzenbeschreibung.
      Über den Button "zurück zur Übersicht" gelangt man auf die Seiten "A" wieder.
      Sollte sich der Besucher nun aber noch die Detailfotos Frucht oder Hecke anschauen,
      (was ich ja nicht weiß) funktioniert history.back() nicht, es sei denn man klickt ihn
      doppelt. Ich möchte aber auf diesen history.back()nicht verzichten, da ich
      diese Pflanzenbeschreibung nur einmal pro Pflanze schreibe, sie aber in etlichen Übersichten
      so einsetzen kann.
      Ich hoffe, dass ich mein Problem jetzt etwas plausibler beschreiben konnte und
      würde mich natürlich über eine Lösung freuen.
      Gruß
      Jörg

      1. Erstmal: Lösche die Teile der vorhergehenden, zitierten Nachricht, auf die du dich nicht beziehst, das macht das Lesen leichter. Das kann bis zu 100% Löschquote gehen, wenn du nochmal komplett neu ansetzen willst.

        Wenn man über Pflanzenverkauf » Laubgehölze » sortiert botanisch/deutsch auf die Übersicht "A" gelangt und nun Acer campestre anklickt, öffnet sich die selbige Pflanzenbeschreibung.
        Über den Button "zurück zur Übersicht" gelangt man auf die Seiten "A" wieder.

        Ich erkenne das Problem. Doch zunächst ein paar andere Anmerkungen:

        "Zurück" und "Vorwärts" sind die Bezeichnungen der Buttons des Browsers, welche in der History blättern. Dort sind die Bezeichnungen auch komplett eindeutig, weil sie sich eben auf die History beziehen, und die ist sortiert, hat höchstens einen Vorgänger und einen Nachfolger.

        Die Bezeichnung "zurück" für einen Link ist aber höchst unglücklich, denn wohin gehts da wohl? Gehts wirklich im Sinne der History "zurück", wo man herkam, oder gehts "zurück", wo der Seitenersteller dachte, daß man herkommen muß, oder gehts in einem noch ganz anderen Sinne "zurück".

        Insofern ist die Bezeichnung "zurück zur Übersicht" zwar schonmal beschreibender, aber trotzdem nicht unbedingt hilfreich. Einfach "zur Übersicht" hat den Makel des "zurück" nicht, sondern ist sogar eher vorwärtsgerichtet: Man surft weiter zur Übersicht, auf der man vielleicht mal war - alle die, die per Suchmaschine die Seite gefunden haben, zumindest.

        Solche Suchmaschinenbesucher mußt du einplanen.

        Und da kommt die zweite Problematik ins Spiel: Wenn du per Link history.back() benutzt, kommen Suchmaschinenbesucher.... zurück zum Suchergebnis, bei dem sie eben einen Link geklickt haben. Das ist sicherlich nicht sonderlich erwünscht.

        Du kannst dagegen argumentieren, daß sowas auf deiner Site kaum bis garnicht vorkommt, weil [insert your favourite reason here], aber grundsätzlich ist es so. Es geht hier schließlich um Navigation, und sowas ist elementar für eine Website.

        Bleibt noch dein Wunsch nach Wiederverwendbarkeit deiner Seiten. Damit hast du im Prinzip absolut recht: Die Pflanzen gibts ja nur einmal, aber sie werden unterschiedlich benannt und gefunden.

        Was mir da spontan einfällt, sind echte HTML-Links zu den Übersichten. Bringt auch für den Suchmaschinenbesucher was, weil der sich dann gleich die Übersicht aussuchen kann, die er haben will. Die haben außerdem den Vorteil, daß sie immer funktionieren. Denn mancher Besucher öffnet beim Klick in der Übersicht lieber ein neues Fenster mit neuer History... und da gibts dann kein "zurück".

        Nun aber mal konkreter:

        Sollte sich der Besucher nun aber noch die Detailfotos Frucht oder Hecke anschauen, (was ich ja nicht weiß) funktioniert history.back() nicht, es sei denn man klickt ihn doppelt. Ich möchte aber auf diesen history.back()nicht verzichten, da ich diese Pflanzenbeschreibung nur einmal pro Pflanze schreibe, sie aber in etlichen Übersichten so einsetzen kann.

        Mit dem HTML-Link hättest du das Problem nicht. Ich würde auch absolut kein Problem darin sehen, daß dann immer zwei Übersichten verlinkt sind, solange der User recht genau weiß, wo er hergekommen ist (die deutsche Übersicht sollte das also irgendwie in der Überschrift nennen).

        Mit Javascript mußt du wissen, wieviele Schritte zurück dein Linkziel entfernt ist. Und mit dem von mir schon erwähnten "history.go(-2);" geht man beispielsweise zwei Schritte in einmal zurück.

        Also <a href="javascript:history.go(-2)"> sollte funktionieren, wenn du zwei Schritte zurücklegst.

        Ob du das wirklich so machen solltest, mußt du selber wissen. Ich würde es NICHT so machen.

        - Sven Rautenberg

        1. Grundsätzlich ist die Navigtation mit non-script-Links sinnvoller.

          Möchte man history.back() verwenden, sollten Deine Abbildungsfenster nicht über Links aufgerufen werden, sonst erhöht sich jedesmal die Länge der URL-Liste um 1.

          Mögliche Abhilfen (nicht getestet, ich denke aber, daß sie funktionieren werden):

          • Buttons statt Links
          • Links mit Abbruch-Befehl am Ende (return false). Dann wird der eigentliche Link nicht mehr ausgeführt, sondern nur der Eventhandler:
            <a href="#" onclick="open('bild1.gif',"...","...");return false">...</a>
            oder doppelt:
            <a href="bild1.gif" target="_blank" onclick="open('bild1.gif',"...","...");return false">...</a>
            Dann wird mit aktiviertem Scripting nur der Eventhandler ausgeführt, bei abgeschaltetem Scripting dagegen der Link.