Please check my code in Chrome Browser, if you hit refresh you will be prompted with 2 options.
- Leave This Page and
- Stay on This Page>
You can use a combination of the onbeforeunload
and onunload
events, setting a timer in the former and clearing it in the latter:
var showMsgTimer;
window.onbeforeunload = function(evt) {
var message = 'Please Stay on this page and we will show you a secret text.';
showMsgTimer = window.setTimeout(showMessage, 500);
evt = evt || window.evt;
evt.returnValue = message;
return message;
}
window.onunload = function () {
clearTimeout(showMsgTimer);
}
function showMessage() {
alert("You've been trolled!");
}
This works because the onunload
event never fires when the user chooses to stay on the page.