Guido: opener.closed in Frame

Ich öffne ein Popup-Fenster mit window.open mit einem Frameset (frame.php).
Folgender Code sollte eigentlich prüfen, ob der Opener noch da ist und dir richtige URL hat, aber irgendwie klappt es nicht und ich komme nicht weiter.
Folgender Code wird im übergeordneten FrameSet geöffnet:

***********************************************************
var aktivOpenFR = window.setInterval("CheckOpenFR()",5000);
var aktivURLFR = window.setInterval("CheckURLFR()",5000);

function CheckOpenFR() {
  if(window.opener.closed == true) {
    parent.mainFrame.location.href="http://www.mydomain.de/error.php";
  } else {
    CheckURLFR();
  }
}

function CheckURLFR() {
  var woherFR = parent.opener.location.href;
  var oeffnerFR = "http://www.mydomain.de/scripts/index.php";
  if (woherFR != oeffnerFR) {
    //alert ("Fehler! \n Der Opener ist: " + woherFR);
    //alert ("Erlaubt ist   : " + oeffnerFR);
    parent.mainFrame.location.href="http://www.mydomain.de/error.php";
    //WinClose();
  }
}

function WinClose() {
  parent.mainFrame.location.href="http://www.mydomain.de/error.php";
}
CheckOpenFR();
CheckURLFR();
***********************************************************

Kann jemand helfen? komme nicht weiter.

  1. hi,

    Kann jemand helfen? komme nicht weiter.

    kein Wunder, ein dunkles Javascript-Kapitel. Bei manchen Browsern kommst Du nur mit dem Abfangen des Error-Events weiter. Teste mal, popup-handler heisst hier "neu":

    function goToUrl(page) {
      // Fehler abfangen, wichtig: return true
      onerror = function(){
        alert("Browserfenster geschlossen");
        return true;
      }
      // normaler Vorgang
      if(opener && !opener.closed && opener.neu) {
        opener.location.href = page;
        self.close();
      }
      else alert("Browserfenster geschlossen");
      // Fehler abfangen aufheben, wichtig: return false
      onerror = function(){
        return false;
      }
    }

    Gruesse  Joachim