Attualmente sto rilevando se un utente del mio sito chiude la finestra/scheda o cambia l'URL.javascript on window close event
Sto usando il codice follwoing, che funziona perfettamente:
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();
});
Il mio problema è che vorrei cambiare l'evento da un avviso per una sovrapposizione. Ho installato una sovrapposizione div nascosto e sostituito la segnalazione nel codice precedente con:
$('.overlay').css('display','block');
Questo ora non funziona più, come non c'è nulla all'interno del div per ottenere l'utente a rimanere sulla pagina. (l'utente non deve fare clic su un pulsante all'interno di un avviso)
Qualche suggerimento su come posso aggirare questo?
Cheers, Dan
Perché non basta usare 'window.onbeforeunload'? So che non è un div di fantasia, ma è sicuramente destinato a questo genere di cose. – Powerslave
window.onbeforeunload era un'opzione ma ora ho bisogno di un div di fantasia che ha bisogno di stile. – danyo
Duplicato su http://stackoverflow.com/questions/276660/how-can-i-override-the-onbeforeunload-dialog-and-replace-it-with-my-own/276739 –