Ci avevo provato anch'io tempo fa.
codice:
<script type="text/javascript">
window.onbeforeunload = function(e) {
var e = e || window.event;
$.ajax({
async: false,
url: "disconnect.php",
type: "get"
});
e.stopPropagation();
e.returnValue = "Messaggio..";
return "Messaggio..";
}
</script>
Non per romperti le uova nel paniere
ma dubito sia quello che serve a te, per svariati motivi:
1. L'onbeforeunload è stato ideato per emettere un messaggio e non per eseguire altre operazioni. E questo dovrebbe bastare a scartarlo.
2. Viene eseguito prima di ogni unload della pagina (cioè quando l'utente ricarica la pagina, quando clicca su un link, [..], e quando la chiude).
3. Devi emettere obbligatoriamente un messaggio (Sei sicuro di voler uscire?) e in Firefox non'è customizzabile.
4. La chiamata ajax verrebbe eseguita in ogni caso (sia che l'utente scelga di abbandonare la pagina sia che ci rimanga).
5. Altri motivi che non mi vengono in mente ma ci saranno di sicuro.
Se posso una domanda, ma perchè ti serve tenere traccia di un utente che lascia la pagina chiudendo il browser?