Изпълнение на родителска функция при събитие за затваряне на дете

Изправен съм пред скучен проблем тук. Трябва да извикам функция на родителския прозорец в събитието за затваряне на дъщерния прозорец. Моят код е като този:

$(function(){
    $("#btnPlay").click(function(){
        ShowPopup("URL", 600, 600, DoSomeStuff);

    });
});
function DoSomeStuff(){
    // Do some stuff
}
function ShowPopup(url, width, height, closeCallback){
    var options = "resizable=yes, status=no, location=no, menubar=no, width= " + width + ",height=" + height;
    var w = window.open(url, "_blank", options );
    w.onunload = function(){ 
        // INVOKE DoSomeStuff of the parent window
        console.log("X");
    }

}

Но изглежда, че събитието onunload не се извиква! Какво може да не е наред?


person mnatan.brito    schedule 09.11.2012    source източник
comment
изскачащият прозорец в друг домейн ли е?   -  person epascarello    schedule 09.11.2012
comment
@epascarello Не, същият домейн!   -  person mnatan.brito    schedule 09.11.2012


Отговори (1)


ти си много близо според мен.

опитвам:

function ShowPopup(url, width, height, closeCallback){
    var options = "resizable=yes, status=no, location=no, menubar=no, width= " + width + ",height=" + height;
    var w = window.open(url, "_blank", options );
    w.onunload = function(){ 
        closeCallback();
        console.log("X");
    }
}
person thelastshadow    schedule 09.11.2012
comment
Но съобщението не се отпечатва на конзолата. onunload не се извиква! - person mnatan.brito; 09.11.2012
comment
ах извинения. Прочетох кода ви, но не забелязах последния ред, така че предположих, че проблемът ви е как да извикате метода. Вашият проблем вероятно е, че браузърите обработват събитието за разтоварване по различни начини. КАКЪВ браузър използвате? - person thelastshadow; 09.11.2012