我有以下代码
$(window).on('beforeunload', function()
{
if(unsavedActionsExist)
{
return "changes will be lost. Do you want to proceed?";
}
}
我正确地获得了确认重新加载对话框。但我的要求是,如果我点击'重新加载',我需要做一些'actionA'和&如果我点击“不要重新加载”,我需要做一些'actionB'。请协助。
答案 0 :(得分:0)
根据策略here,here和here,您可以使用unload
事件来检测用户是否离开了网页,并setTimeout
如果用户留下,则运行一个函数。
请注意,无论用户选择什么,都会设置超时,但定时器不会启动,直到"确认重新加载"对话框被驳回。为确保userStays()
函数在用户离开时不执行,请使用超过$(window).on('unload')
函数预期时间的超时间隔。
var timeout;
var userStays = function() {
// executed if the user stays
clearTimeout(timeout);
$("#stayed").html("The user stayed.");
}
$(window).on('beforeunload', function() {
$("#stayed").html("The user is leaving.");
timeout = setTimeout(userStays, 200);
return "Changes will be lost. Do you want to proceed?";
});
$(window).on('unload', function() {
// executed if the user clicks "Reload this Page"
console.log("Goodbye!");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="location.reload()">Reload</button>
<div id="stayed"></div>
&#13;