javscript ckeck if parent exists

Kommentieren Dec 27 2007 .txt, .json, .md

Wie man überprüft ob ein Kind Fenster, das man mit windown.open geöffnet hat noch aktiv ist, findet man sehr gut über Google.

Sucht man nun nach dem Gegenteil, also überprüfen ob das Eltern(parent) Fenster noch da ist, dann findet man fast nichts… Will man nun aus dem Kind(child) Fenster, das mit window.open geöffnet worden ist, überprüfen ob das Eltern(parent) Fenster noch aktiv und offen ist. Dies zu lösen war gar nicht so einfach. Bis ich dann auf das Objekt opener gestossen bin. Damit das alles dann auch noch Funktioniert und automatisch abläuft kam dabei folgendes heraus:

function doCheck() {
    if(opener) {
        if(opener.closed == false) {
            window.setTimeout("doCheck()", 5000);
        }
        else {
            window.location.href='test1.htm';
            return;
        }
    }
    else {
        window.location.href='test1.htm';
        return;
    }
}

window.setTimeout("doCheck()", 5000);

Beim Aufruf des Kind(child) Fenster mit einer html Seite mit dem obigen code, wird die Funktione doCheck alle 5sec. ausgeführt. Das erste if(opener) ist für den FF und das if(opener.closed) für den IE. Falls nun das Eltern(parent) Fenster geschlossen ist, wird das Kind Fenster mit window.location.href auf eine neue Seite weiter geleitet.

Dies habe ich im FF 2 und im IE 7 gestestet.

achso: allen noch eine Frohes Weihnachtsfest und nen guten Rutsch ins neue Jahr.