I have this simple piece of code -
$(window).bind(\'beforeunload\', function(){
alert(\"Good Bye\")
});
Works great with Firefox, IE8 but
Try this for all Browsers:-
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage;
return confirmationMessage;
});
I had to include it in a jQuery(document).ready to get it working in chrome
<script>
jQuery(document).ready(
function () {
jQuery(window).bind('beforeunload',
function (e) {
[code here]
}
);
}
);
</script>
Return a string instead:
$(window).on('beforeunload', function(){
return "Good bye";
});
If you need to send some analytical data just before unloading the document, choose navigator.sendBeacon() method instead of XMLHttpRequest.
sendBeacon() method is designed to perform non-blocking sending of a small amount of data.
But check canIuse report first, since the method is not supported globally yet.
Try this:
function LogTime(){
jQuery.ajax({
type: "POST",
url: "log.php",
data: "",
cache: false,
success: function(response){
}
});
}
$(window).bind('beforeunload', function(){
LogTime();
return "You're leaving?";
});
It seems that as long as you return a string for this event at the end of function body, you can run code before that string.
Try below:
$(window).on('beforeunload', function(){
return "Good Bye";
});