To make a callback function fire whenever your popup window is closed, use the following code:
var myWindow = … // create window popup
var callback = function(){
alert("foo");
};
$(myWindow).unload(function(){
if(this.location == "about:blank"){
$(myWindow).unload(callback);
} else {
callback();
}
});
Note: The fix for “about:blank” is needed for browsers who create popups with about:blank, then navigate to the specified URL. Also, this callback will fire whenever you navigate away from the initial popup page, not just closing.
Another solution is to continously poll for window closure. See the following code:
var myWindow = … // create window popup
var callback = function(){
alert("foo");
};
function pollForWindowClosure(){
if(myWindow.closed){
callback();
return;
}
setTimeout(pollForWindowClosure, 10);
}
pollForWindowClosure();