Попробуйте это:
var win = window.open(url, name);
win.onunload = afterChildClose; // afterChildClose() is the function.
win.close(); // afterChildClose() should fire now.
Весь этот код будет расположен и выполнен в javascript родительского окна (включая afterChildClose ()). Вы создаете окно и назначаете функцию событию unload.
О, одна вещь, о которой я только что подумал. Если дочернее окно обновляется или переходит на другой URL-адрес, также запускается событие onunload. Если вы хотите, чтобы событие происходило только при закрытом окне, вы должны включить проверку afterChildClose () на win.closed.
РЕДАКТИРОВАТЬ: Вот код для двух образцов страниц, которые я собрал, чтобы попробовать это.
Родительское окно:
<html>
<body>
<script type="text/javascript">
var win = window.open("secondwindow.html", "woo");
win.onunload =onun;
function onun() {
if(win.location != "about:blank") // This is so that the function
// doesn't do anything when the
// window is first opened.
{
alert("closed");
}
}
</script>
</body>
</html>
дочернее окно ("secondwindow.html"):
<html>
<body>
<script type="text/javascript">
setTimeout('window.close();', 5000);
</script>
</body>
</html>
Когда я пытаюсь открыть первый документ в Firefox, он открывает окно, окно ждет 5 секунд и выходит, а в первом документе отображается alert (), поэтому он работает, даже когда подокно закрывается.