页面上的操作是否重新加载Jquery

时间:2016-04-21 14:49:54

标签: javascript jquery

我有以下代码

$(window).on('beforeunload', function()  
{  
  if(unsavedActionsExist)  
  {  
    return "changes will be lost. Do you want to proceed?";  
  }  
}

我正确地获得了确认重新加载对话框。但我的要求是,如果我点击'重新加载',我需要做一些'actionA'和&如果我点击“不要重新加载”,我需要做一些'actionB'。请协助。

1 个答案:

答案 0 :(得分:0)

根据策略hereherehere,您可以使用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;
&#13;
&#13;

相关问题