对页面重新加载 Jquery 执行操作

Do actions on page reload Jquery

本文关键字:加载 Jquery 执行 操作 新加载      更新时间:2023-09-26

>我有以下代码

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

我正确收到确认重新加载对话框。但我的要求是,如果我单击"重新加载",我需要执行一些"操作A",如果我单击"不重新加载",则需要执行一些"操作B"。请协助。

按照此处、此处和此处的策略,您可以使用 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>