L'evento di cui parli è Javascript ed è di là che avresti dovuto chiedere.
Ad ogni modo, l'evento onbeforeunload non da garanzie di successo, dipende dal browser, per lo stesso browser può variare il comportamento anche da versione a versione.
Se devi fare qualcosa che deve funzionare assolutamente, onbeforeunload non è la scelta giusta.