[JavaScript] Internet Explorer und history.back()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Internet Explorer und history.back()

    Mein erstes Posting in diesem Forum - darum erstmal ein herzliches "Hallo!" an alle.

    Ich habe ein sehr merkwürdiges Problem mit dem Internet Explorer und der Funktion history.back() - die funktioniert nämlich unter bestimmten Umständen bei mir nicht. Allerdings weiß ich nicht, welches diese Umstände sind und wie sie zustande kommen...

    Das Problem:

    Mit window.open() wird ein pop-up geöffnet, in dem der Nutzer per Formular (action="<?php echo $PHP_SELF; ?>") Daten eingegeben kann. Hat er Felder nicht ausgefüllt, tritt folgender Code in Kraft:

    <table><tr><td>
    Sie haben nicht alle Felder ausgefüllt.<br>
    <a href=javascript:history.back()>Zurück</a>
    </td></td></table>

    War alles richtig, bekommt er nochmal die Möglichkeit, seine Eingaben selbst zu prüfen sowie eine Entscheidungsmöglichkeit:

    <table><tr><td>
    <a href="javascript:func1('<?php echo $var1; ?>')" TARGET="main">Einfügen | </a>
    <a href="javascript:history.back()">Zurück | </a>
    <a href="javascript:self.close()">Abbrechen</a>
    </td></tr></table>

    Unter Netscape geht alles wunderbar und mit dem IE funzen die anderen beiden JavaScript-Aufrufe aus dem zweiten Beispiel seltsamerweise auch - nur eben history.back() nicht.

    Wenn ich dem Problem mit history.length() auf die Spur gehe, wird auch klar, warum es nicht klappt. Netscape meldet an dieser Stelle nämlich jeweils "2"; der IE dagegen "1"

    Kennt jemand dieses Problem und hat vielleicht sogar eine Lösung dafür?

  • #2
    soweit ich weiß schreibt man:
    history.go(-1); das geht dann im IE und Netscape



    übrigens schreib nicht
    $PHP_SELF sondern $_SERVER['PHP_SELF'] dann hast du später keine probleme!
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

    Kommentar


    • #3
      Danke für die beiden Hinweise - leider haben Sie keinen Einfluss auf das Problem.

      history.go(-1) würde auch nur funktionieren, wenn die History größer als 1 wäre, was ja beim IE derzeit nicht der Fall ist. Ich versuchs mal weiter...

      Kommentar


      • #4
        Okay, ich hab's jetzt.

        Das Problem liegt wahrscheinlich darin, dass die <form>-achtion "<?php echo $_SERVER['PHP_SELF']; ?>" den URL unverändert lässt. Netscape scheint trotzdem zu registrieren, dass irgendwas anders ist; der IE ignoriert dies.

        Wenn man aber an die action etwas dranhängt - z.B. "?fill=yes" - ändert sich der URL und wird als neue Seite auch in die History des IE aufgenommen.

        Komisch: Kaum macht man's richtig, klappt's

        Kommentar

        Lädt...
        X