Rüdiger: Popup-Fenster in den Vordergrund zurückholen

Hallo erstmal,
ich habe ein kleines Problem mit MSIE 5. Ich habe ein Popup-Fenster, das beim aktivieren des entsprechenden Links aufgeht. Wenn es nun im Hintergrund liegt und der Link erneut angeklickt wird, soll es wieder in den Vordergrund. Meine Idee war folgende:

function open
{
fenster=window.open (...);
fenster.focus();
}

Funktioniert auch mit Netscape. Mit MSIE geht das Fenster zwar ordnungsgemäß auf, bleibt bei wiederholtem Anklicken des Links jedoch im Hintergrund. Was kann ich tun?

Rüdiger

  1. Hi Rüdiger,

    versuch mal das window.focus() in das Popup selbst zu setzen.

    Andernfalls gibts vielleicht noch eine Krücken-Lösung.
    Setze in die function open() ein "fenstername.blur()"
    ein, wobei "fenstername" der Name des Hauptfensters ist.

    Damit dürfte das Hauptfenster in den Hintergrund verschwinden.

    Ich hoffe das hilft, habe leider grad keine Möglichkeit das
    direkt zu testen.

    Gruß
    Edgar

    1. Hi Rüdiger,

      versuch mal das window.focus() in das Popup selbst zu setzen.

      Andernfalls gibts vielleicht noch eine Krücken-Lösung.
      Setze in die function open() ein "fenstername.blur()"
      ein, wobei "fenstername" der Name des Hauptfensters ist.

      Damit dürfte das Hauptfenster in den Hintergrund verschwinden.

      Ich hoffe das hilft, habe leider grad keine Möglichkeit das
      direkt zu testen.

      Gruß
      Edgar

      Hallo Edgar

      Ich habe es getestet. Es ging nicht.
      Das Problem bleibt auch bei Deinen Vorschlägen, daß die Funktionen beim erneuten anklicken gar
      nicht aufgerufen werden, weder mit Hilfe von "onLoad:..." (Das Fenster ist ja bereits geladen)
      noch bei "onFocus:..." (das fokussieren will ich ja gerade erreichen).

      Trotzdem vielen Dank
      Rüdiger

  2. Hallo Rüdiger,

    function open
    {
    fenster=window.open (...);
    fenster.focus();
    }

    Problem 1: open als Funktionsname. Das mußt du unbedingt verändern, weil open bereits eine vordefinierte Funktion ist.

    Problem 2: Ein Tipfehler vielleicht? Hinter den Funktionsnamen fehlen die Klammern
    schreibe am besten function oeffnen(), dann bist du auf der sicheren Seite

    Problem 3: IE5 hat manchmal ein paar Zeitprobleme. Rufe mal den Fokus etwas zeitverzögert auf. Also setTimeout("Fenster.focus()",40);

    Viele Grüße

    Antje

  3. Hallo Rüdiger,

    probiers mal mit diesem Code im Head-Bereich Deines Pop-Ups.

    <script>
    self.focus();
    </script>

    Wichtig ist, daß das Script (wie hier) auf 3 Zeilen verteilt ist.

    Gruß
      Christian Schnagl

  4. Hallo Rüdiger,

    ich habe hier ein vollfunktionierendes Beispiel:

    <html>
    <head>
    <title>Test</title>
    <SCRIPT>
      var opened = false; //Wurde das Fenster geöfnet?
      var fenster; //Referenz auf das Fenster
      function openwin()
      {
       if(opened == false) //Falls das Fenster noch nicht geöfnert wurde
       {
        fenster = open("about:blank","win");
        opened = true;
        fenster.focus();
       }
       if(fenster.closed == true) //Falls das Fenster wieder geschlossen wurde
       {
        fenster = open("about:blank","win");
        fenster.focus();
       }
       if(fenster.closed == false) //Falls das Fenster geöffnet ist
       {
        fenster.focus();
       }
      }
    </script>
    </head>

    <body>
    <A href="javascript:openwin()">neues Fenster</a>
    </body>
    </html>

    Ich habe es auf IE 5 und Navigator 4.7 getestet.

    Tschüs
    Daniel

  5. Vielen Dank an alle,
    viele gute Tips!
    Ich habe mit dem kleinen Script von Christian das Problem gelöst.
    Die anderen funktionieren vermutlich auch,
    aber das von Christian hatte den großen Vorteil mit einer Zeile auszukommen.

    Rüdiger