[JavaScript] history.go(-1) bei Safari

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Root-2k, 17. Mai 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 17. Mai 2010
    history.go(-1) bei Safari

    Hi,

    ich hab mal wieder (leider) ein Problem... (ich hoffe das ist der richtige Bereich dafür).

    Folgender Code funktioniert einwandfrei beim Firefox und IE:
    HTML:
    <input name="Back" type="button" value="Zurück" onClick="history.go(-1);"/>
    Wenn ich draufklicke komme ich auf die zuletzt aufgerufene Seite, wobei auch die aktuellen Daten auf der Seite angezeigt werden (es wird also ein Refresh gemacht).

    Wenn ich allerdings beim Safari auf den Button klicke komme ich zwar auf die zuletzt aufgerufene Seite, aber die Daten sind nicht mehr aktuell (es wird also KEIN Refresh gemacht). Das sehe ich alleine daran dass beim Laden der Seite eigentlich eine JS- Funktion ausgeführt wird. Wenn ich aber über history.go(-1) auf die Seite gehe, wird die Funktion nicht ausgeführt.
    history.back() funktioniert leider auch nicht.

    Könnt Ihr mir vielleicht sagen wie ich es schaffen kann dass da ein Refresh ausgeführt wird? ?(

    Folgendes bringt mir leider nichts, da der erste Refresh ja erst nach (z.B.) 60 sec. ausgeführt wird:
    HTML:
    <meta http-equiv="refresh" content="60">
    Noch ein (evtl.) wichtiger Hinweis:
    Ich arbeite nicht mit verschiedenen (HTML/PHP-) Seiten, sondern ich bleibe immer auf der index.php und arbeite mit GET- Parametern. Also sieht eine URL dann z.B. folgendermaßen aus:
    Code:
    http://localhost/index.php?target=Station
    Weiß nicht wie man das nennt...

    Bw gibt es natürlich für jeden hilfreichen Beitrag!

    Info:
    HTML/PHP/CSS/JS steht zur Verfügung.
     
  2. 17. Mai 2010
    AW: history.go(-1) bei Safari

    mache aus deinem zurück button ein submit button und sende einfach die eingegeben daten an das formular zurück. ich glaub mit history.back() wird nicht sonderlich viel gearbeitet, da man wie du siehst, dies nicht besonders kontrollieren kann.

    natürlich kannst du auch mit sessions arbeiten und die daten solange in der session halten bis du das formular abgesendet hast, oder eine gewisse zeit abgelaufen ist.
     
  3. 17. Mai 2010
    AW: history.go(-1) bei Safari

    PHP:
    <script type="text/javascript">
    function goBack() {
        window.location.href = "<?php  print  addslashes ( $_SERVER [ 'HTTP_REFERER' ]);  ?>";
    }
    </script>
    HTML:
    <input name="Back" type="button" value="Zurück" onClick="goBack();"/>
    unsauber und unsicher.
     
  4. 17. Mai 2010
    AW: history.go(-1) bei Safari

    @wollknoll:
    Also entweder verstehe ich nicht ganz was du meinst, oder umgekehrt :]

    Es werden nicht zwangsläufig Daten eingetragen. Die angezeigten Daten stammen aus einer Datenbank.

    Ich erläutere mein Problem nochmal mit einem beispielhaften Ablauf (der so leider bei Safari noch nicht funktioniert).

    User...
    1.) befindet sich auf Seite 1 (localhost/index.php)
    2.) klickt auf einen Link (Button) und gelangt somit zu Seite 2 (localhost/index.php?target=Station)
    3.) klickt wieder auf einen Link und gelangt somit zu Seite 3 (localhost/index.php?target=Station&Station=test)
    4.) klickt auf den Zurück- Button und gelangt auf Seite 2
    5.) klickt nochmal auf einen Link und gelangt somit wieder zu Seite 3 (die evtl. nun andere Daten anzeigt, als bei Schritt 3)
    ## Und jetzt kommt das Problem ##
    6.) klickt auf den Zurück- Button und gelangt auf Seite 1
    --> Aber eigentlich sollte er wieder zu Seite 2 kommen.

    Wie gesagt... beim Firefox und IE funktioniert das einwandfrei, beim Safari nicht.

    @Murdoc:
    Hammer... deine Lösung funktioniert mal wieder einwandfrei!! Danke dir!!!!
    Aber was meinst du mit unsicher? In welcher Hinsicht?
    Und wie könnte man das sauber lösen? Wie du weist bin ich ja noch in einer Lernphase und kenne mich noch nicht so gut mit HTML und PHP aus.

    Bin echt dankbar für deine Beiträge!!
     
  5. 17. Mai 2010
    AW: history.go(-1) bei Safari

    naja, ich würde das eleganter lösen. z.b. indem man die herkunft in ner session speichert usw.
    weil bei HTTP_REFERER kann man auch schadcode einschleusen wenn man nicht aufpasst. die funktion addslashes verhindert zwar einiges, aber mir wär es trotzdem zu unsicher.
     
  6. 17. Mai 2010
    AW: history.go(-1) bei Safari

    Ok, danke dir.
    Werde mal ausprobieren ob ich das so hinbekomme wie ich mir das vorstelle. Aber der Tipp ist schon mal gut!
    Allerdings kann ich das erst morgen in der Arbeit testen.
     
  7. 19. Mai 2010
    AW: history.go(-1) bei Safari

    Funktioniert alles super! Danke nochmal.

    *closed*
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.