MSJones: Öffnen und schließen von Popupfenstern

Hallo zusammen.

Ich hab folgendes Problem:
In einem Popup, welches mit window.open(...) aufgerufen wird, befindet sich ein Button, mit noch ein neues Popup aufgerufen werden soll.
Gleichzeitig soll mit dem Klick auf den Button das erste Popup geschlossen werden (per self.close() oder window.self.close()).

Wenn man das einmal probiert, funktioniert das auch wunderbar.
Nur leider, wenn ich beide Popups geschlossen habe (Das erste automatisch und das 2. von Hand) und die Popuops nocheinmal aufrufen will, komm ich nur bis zum ersten Popup.

Wird dort nun auf den Button für das 2. Popup geklickt, bekomm ich ein neues Fenster, wie es sein soll, dieses bleibt jedoch weiß und lädt sich zu tode.

Prozessorauslastung bleibt normal, Speicherauslastung auch soweit ich das sagen kann...

Hat jemand ne Idee, woran das liegen könnte?

Danke für eure Antworten.

  1. Hallo,

    In einem Popup, welches mit window.open(...) aufgerufen wird, befindet sich ein Button, mit noch ein neues Popup aufgerufen werden soll.
    Gleichzeitig soll mit dem Klick auf den Button das erste Popup geschlossen werden (per self.close() oder window.self.close()).

    Nur leider, wenn ich beide Popups geschlossen habe (Das erste automatisch und das 2. von Hand) und die Popuops nocheinmal aufrufen will, komm ich nur bis zum ersten Popup.

    Hat jemand ne Idee, woran das liegen könnte?

    an Deinem Code, den Du uns leider vorenthältst.
    Andererseits solltest Du Dein Konzept, das soviele Popups benötigt, überdenken.

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      In einem Popup, welches mit window.open(...) aufgerufen wird, befindet sich ein Button, mit noch ein neues Popup aufgerufen werden soll.
      Gleichzeitig soll mit dem Klick auf den Button das erste Popup geschlossen werden (per self.close() oder window.self.close()).

      Nur leider, wenn ich beide Popups geschlossen habe (Das erste automatisch und das 2. von Hand) und die Popuops nocheinmal aufrufen will, komm ich nur bis zum ersten Popup.

      Hat jemand ne Idee, woran das liegen könnte?

      an Deinem Code, den Du uns leider vorenthältst.
      Andererseits solltest Du Dein Konzept, das soviele Popups benötigt, überdenken.

      Freundliche Grüße

      Vinzenz

      Das 1. Popup wird wie folgt aufgerufen:
       function CallKontakt(sessionKey)
       {
        var zufall = Math.round(Math.random() * 100);
        var time = new Date().getTime();
         var TempID = MD5(time+''+zufall);
        window.open('kontakt.php?SessionKey='+sessionKey+'&TempID='+TempID,'neu','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=yes,width=1024,height=768,personalbar=no');
       }

      Damit wird das 2. Popup aufgerufen:

      function BriefErstellen () {

      if(SelectedObjektsAusgabe==""){
         alert("<?php echo $TTeileAuswahl;?>");
         return;
        }
        //exit;

      // Den Brief im neuen Fenster oeffnen
        var fenster = window.open('kontakt_brief_fax.php?SessionKey='+SessionKey+'&TempID='+TempID+'&kon_aktion='+kon_aktion+'&SelectedObjektsAusgabe='+SelectedObjektsAusgabe+'&LieID='+LieID+'&AnsprechID='+AnsprechID,'brief','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=yes,width=1024,height=768,personalbar=no');
        window.self.close();
       } // function BriefErstellen ()

      Beide Fenster werden jeweils über ein Button mit einem onlclick-Event mit der jeweiligen Funktion aufgerufen.

    2. Hallo,

      In einem Popup, welches mit window.open(...) aufgerufen wird, befindet sich ein Button, mit noch ein neues Popup aufgerufen werden soll.
      Gleichzeitig soll mit dem Klick auf den Button das erste Popup geschlossen werden (per self.close() oder window.self.close()).

      Nur leider, wenn ich beide Popups geschlossen habe (Das erste automatisch und das 2. von Hand) und die Popuops nocheinmal aufrufen will, komm ich nur bis zum ersten Popup.

      Hat jemand ne Idee, woran das liegen könnte?

      an Deinem Code, den Du uns leider vorenthältst.
      Andererseits solltest Du Dein Konzept, das soviele Popups benötigt, überdenken.

      Freundliche Grüße

      Vinzenz

      OK, Problem hat sich erledigt.
      Lag nicht an den Popups sondern an einer xmlhttp-Anfrage:
        xmlHttp.open('POST', 'kontakt_save.php', true);
        xmlHttp.setRequestHeader("Pragma", "no-cache");
        xmlHttp.setRequestHeader("Cache-Control", "must-revalidate");
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        xmlHttp.send(TempSendDATA);

      // Den Brief im neuen Fenster oeffnen
        var fenster = window.open('kontakt_brief_fax.php?SessionKey='+SessionKey,'brief','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=yes,width=1024,height=768,personalbar=no');

      xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
         //alert(xmlHttp.responseText);
         //location.reload();
         }
        }

      window.self.close();

      So wie's aussieht wurde das Fenster geschlossen, bevor die Übertragung des xmlHttp abgeschlossen war. Das hat dann Probleme verursacht.

      Lösung:
      "window.self.close();" einfach in die Funktion des "xmlHttp.onreadystatechange" schreiben, statt daunter. Dann wird das Fenster erst geschlossen, wenn die Übertragung abgeschlossen ist.