¿Por qué window.open (...) .onunload = function () {...} no funciona como esperaba?

Quiero poder saber cuándo el usuario cierra una ventana que abro. Este es el código de mi intento de monitorear esto:

<html>
  <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
        window.document.onready = function () {
            document.getElementById('openWindow').onclick = function () {
                var windowref = window.open('tests2.html');
                windowref.onunload =  function () {
                    window.alert('hola!');
                };
            };
        };
  </script>
</head>
<body>
  <button id='openWindow'>Open Window</button>

</body>
</html>

Esperaría que esto alertara "¡hola!" en la ventana original después de la ventana que se abrió conwindow.open estaba cerrado. En cambio, alerta "hola!" en la ventana original inmediatamente después de abrir la nueva ventana conwindow.open. ¿Por qué funciona así? ¿Hay alguna forma de hacer lo que quiero hacer?

Respuestas a la pregunta(2)

Su respuesta a la pregunta