function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
如果用户刷新页面并且用户在确认框中单击“离开此页面”,我想调用一个 javascript 函数,否则不会!我对如何做到这一点感到困惑。谢谢
function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
如果用户刷新页面并且用户在确认框中单击“离开此页面”,我想调用一个 javascript 函数,否则不会!我对如何做到这一点感到困惑。谢谢
只有在这种情况下,您才需要拦截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);
演示:http: //jsfiddle.net/ejDrq/
请注意,如果用户单击“刷新”按钮,这将不起作用。这是不可能拦截的。
如果您可以控制托管页面的服务器端,那么您可以使用semaphore
( wiki:semaphore ) 逻辑地处理此问题。基本上它是一个旋转锁,将在他们的服务器端会话中实现。如果他们已经进入并且没有以安全的方式退出,则重置页面状态。自然,与所有旋转锁一样,必须有一个安全状态才能清除锁定。