function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
如果用户刷新页面并且用户在确认框中单击“离开此页面”,我想调用javascript函数,否则不会! 我对如何做到这一点很困惑。 谢谢
答案 0 :(得分:2)
您需要拦截F5
按键并仅在这种情况下设置onbeforeunload
处理程序:
document.addEventListener('keydown', function(e) {
if(e.which == 116) {
window.onbeforeunload = function() {
window.onbeforeunload = null;
return "Do you really want to refresh the page?";
}
}
}, false);
请注意,如果用户点击“刷新”按钮,则此功能无效。拦截这个是不可能的。
答案 1 :(得分:0)
如果您可以控制托管该页面的服务器端,那么您可以使用semaphore
(wiki:semaphore)进行逻辑处理。基本上它是一个旋转锁,它将在他们的服务器端会话中实现。如果页面状态已进入且未以安全方式退出,则重置页面状态。当然,与所有旋转锁一样,必须有一个安全状态来清除锁定。