Thorsten Waldorf: history.back / PopUp / IE6 - Problem

Hallo zusammen.

Ich habe folgendes Phänomen:

Der IE6 scheint ein Problem damit zu haben, auf ein history.back zu reagieren, wenn über JavaScript ein PopUp erzeugt wurde:

Beispiel:
Webseite enthält einen Link auf "javascript:history.go(-1);" sowie
einen anderen Link auf ein PopUp (javascript). Wenn das PopUp erstmal geöffnet wurde, dann funktioniert der History.back nicht mehr! Kann man das umgehen, oder ist das ein (bisher unbekannter) Bug im IE6?

Viele Grüsse,

Thorsten

  1. Hi,

    Webseite enthält einen Link auf "javascript:history.go(-1);" sowie
    einen anderen Link auf ein PopUp (javascript). Wenn das PopUp erstmal geöffnet wurde, dann funktioniert der History.back nicht mehr! Kann man das umgehen, oder ist das ein (bisher unbekannter) Bug im IE6?

    ich denke mir mal das der IE den Link mit dem PopUP ausgeführt hat, ist der auch in der History drin, dann musst du halt history.go(-2) nehmen, um die alte Seite zu laden. Kannst es ja mal austesten.

    Ist natürlich dumm, da man nicht weiß ob jetzt ein popup Link angeklickt wurde und man dann entsprechend -2 oder -1 nehmen muss.

    Wie sieht der Link denn aus?

    <a href="javascript:...> oder
    <a href="#" onClick="open(...)">

    Versuch mal die untere Variante, vielleicht klappt es ja dann.

    Gruß

    ueps

    1. Versuch mal die untere Variante, vielleicht klappt es ja dann.

      Hi ueps,

      das Problem ist, dass nur der IE6 diese Probleme hat. Alle anderen Browser kapieren das. Aber davon mal abgesehen funktioniert es mit der von Dir genannten Variante zumindest. Dennoch muss man zweimal auf den Zurück-Link klicken damit wirklich zurückgesprungen wird. (Vorher ging es im IE6 überhaupt nicht mehr).
      Das ist echt blöd, ich könnte ja bei Klick auf das popUp eine Variable setzen und beim Klick auf den Zurück-Button überprüfen, ob die Variable vorhanden ist oder nicht. So wüsste ich, ob das PopUp geladen wurde. Aber das noch in Kombination mit einer Browser-Abfrage erscheint mir ein wenig zu umständlich um so ein kleines Problem zu beseitigen...

      Vielleicht noch irgendwelche anderen Ideen?

      Viele Grüsse,

      Thorsten

      1. Hi,

        Das ist echt blöd, ich könnte ja bei Klick auf das popUp eine Variable setzen und beim Klick auf den Zurück-Button überprüfen, ob die Variable vorhanden ist oder nicht. So wüsste ich, ob das PopUp geladen wurde. Aber das noch in Kombination mit einer Browser-Abfrage erscheint mir ein wenig zu umständlich um so ein kleines Problem zu beseitigen...

        Vielleicht noch irgendwelche anderen Ideen?

        Beim Laden der Seite dies setzen:
        var old_length = history.length;

        function zurueck()
        {
        backvar = old_length - history.length - 1;
        history.go(backvar);
        }

        So könnte es klappen, wenn die History auf der Seite gelich bleibt springt er -1 zurück, wenn im IE noch PopUps geöffnet werden usw.
        springt er um soviel zurück wie geöffnet wurde.

        Probiers mal aus.

        Gruß

        ueps