From the Mozilla Developer Network page:
When this event returns a non-void value, the user is prompted to confirm the page unload.
This means the return value of the handler must be undefined
(not ''
, false
, or null
) in order to avoid triggering the confirmation prompt.
window.onbeforeunload = function() {
$.post("track.php", {
...
});
return undefined;
}
In javascript you can skip the return value altogether to get the same result.
In coffeescript with jquery it's something like
$(document).ready ->
$(window).bind('beforeunload', ->
#put your cleanup code here
undefined
)