向ChatGPT学习(一)

149 阅读1分钟

问:使用javascript实现以下功能:当用户5分钟内没有任何操作的时候,弹出选择对话框,内容:你已经5分钟没有操作了,是否退出?

答:以下是使用JavaScript实现当用户5分钟内没有任何操作时弹出选择对话框的功能:

var inactivityTime = 0; // 记录用户不活动时间
var maxInactivityTime = 5 * 60 * 1000; // 最大不活动时间为5分钟
// 检测用户活动并重置计时器
function resetInactivityTime() {
  clearTimeout(inactivityTimer);
  inactivityTime = 0;
  inactivityTimer = setTimeout(showDialog, maxInactivityTime);
}

// 显示对话框
function showDialog() {
  var confirmed = confirm("你已经5分钟没有操作了,是否退出?");
  if (confirmed) {
    // 执行退出操作
    // ...
    alert("执行退出操作");
  } else {
    // 用户取消退出
    resetInactivityTime();
  }
}

// 监听用户活动事件
document.addEventListener("mousemove", resetInactivityTime);
document.addEventListener("keydown", resetInactivityTime);
document.addEventListener("mousedown", resetInactivityTime);

// 初始化
var inactivityTimer = setTimeout(showDialog, maxInactivityTime);

以上代码使用了setTimeout函数来设置一个定时器,当用户5分钟内没有任何鼠标移动、键盘输入或鼠标点击操作时,定时器触发,弹出选择对话框询问用户是否退出。如果用户确认退出,可以在对话框的回调函数中执行相应的退出操作,例如清除登录状态、跳转到登录页面等。如果用户取消退出,重新设置计时器以监测下一次5分钟的不活动时间。请注意,以上代码只是一个简单的演示示例,实际应用中可能需要根据具体需求进行适当的修改和完善。