Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
196
rated 0 times [  199] [ 3]  / answers: 1 / hits: 46288  / 11 Years ago, tue, may 14, 2013, 12:00:00

I am currently detecting if a user of my site closes the window/tab or changes the url.



I am using the follwoing code, which works perfectly:



var validNavigation = false;

function endSession() {
// Browser or broswer tab is closed
// Do sth here ...
alert(bye);

}

function wireUpEvents() {

window.onbeforeunload = function() {
if (!validNavigation) {
endSession();
}
}

// Attach the event keypress to exclude the F5 refresh
$(document).bind('keypress', function(e) {
if (e.keyCode == 116){
validNavigation = true;
}
});

// Attach the event click for all links in the page
$(a).bind(click, function() {
validNavigation = true;
});

// Attach the event submit for all forms in the page
$(form).bind(submit, function() {
validNavigation = true;
});

// Attach the event click for all inputs in the page
$(input[type=submit]).bind(click, function() {
validNavigation = true;
});

}


$(document).ready(function() {
wireUpEvents();
});


My problem is i would like to change the event from an alert to a overlay. I have setup up a hidden div overlay and replaced the alert in the above code with:



$('.overlay').css('display','block');


This now no longer works, as there is nothing within the div to get the user to stay on the page. (the user doesn't have to click a button within an alert)



Any suggestions on how i can get around this?



Cheers, Dan


More From » jquery

 Answers
13

The window close event is fired as the very last event. Therefore no other events are fired after it.



You can use the beforeunload event with Jquery, to show the overlay on screen.



The following link could help: link


[#78243] Monday, May 13, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
erinh

Total Points: 38
Total Questions: 100
Total Answers: 110

Location: Macau
Member since Mon, Nov 16, 2020
4 Years ago
;