I use this function to call on my window close.
This is the confirmation box popup window.
if(confirm(\"Sure you want to close the window\");
{
There is no "close" event that you can catch with today's browsers.
There is an onbeforeunload but you can't do a lot when it is called, especially you can't prevent the window closing without the user consent and most distant operations will fail if you try them from the page which is being closed.
For a popup window, you can get the closing event, and do long operations, but only in the opener window :
var w = window.open('popup.html');
w.onbeforeunload = function(){
// set warning message
};
IMPORTANT: In recent versions of chrome, onbeforeunload
only allows you to set the warning message; you may not run extra logic.
Unfortunately the popup window does not have any close event that you can listen to but there is a closed property that is true when window gets closed. A solution to get around this problem is to start a timer and check the closed property of the child window every second and clear the timer when the window gets closed. Here is the code:
var win = window.open('http://www.google.com','google','width=800,height=600,status=0,toolbar=0');
var timer = setInterval(function() {
if(win.closed) {
clearInterval(timer);
alert('closed');
}
}, 1000);