В настоящее время я обнаруживаю, что пользователь моего сайта закрывает окно/вкладку или меняет URL-адрес.
Я использую следующий код, который отлично работает:
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();
});
Моя проблема заключается в том, что я хочу изменить событие из предупреждения на оверлей. Я установил скрытый div overlay и заменил предупреждение в приведенном выше коде на:
$('.overlay').css('display','block');
Теперь это больше не работает, так как в нем нет ничего, чтобы заставить пользователя оставаться на странице. (пользователю не нужно нажимать кнопку в пределах предупреждения)
Любые предложения о том, как я могу обойти это?
Приветствия, Дэн