我编写了一个脚本来检查用户是否在页面上处于活动状态,如果不是,则在 15 分钟后显示一个弹出窗口,此时显示一个从 60 秒开始倒计时的计时器,然后将用户重定向到杀死网站上用户会话的页面。
但是,虽然我可以重置显示弹出窗口的计时器,但我似乎无法取消从 60 倒计时的第二个计时器。
这是我的代码:
<script type="text/javascript">
idleTime = 0;
idleRedirect = 0;
// Count for the timer
var wsCount = 60;
// Start Countdown
function startCountdown() {
if((wsCount - 1) >= 0){
wsCount = wsCount - 1;
// Display countdown
$("#countdown").html('<span id="timecount">' + wsCount + '</span>.');
timing = setTimeout(startCountdown, 60000);
}
else{
// Redirect to session kill
alert('Goodbye');
}
}
// Pop up when the timer hits 15 minutes
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > 14) { // 15 minutes
$('#inactiveWarning').modal('show');
startCountdown();
}
}
$(document).ready(function () {
//Increment the idle time counter every minute.
var idleInterval = setInterval("timerIncrement()", 5000); // 1 minute
//Zero the idle timer on mouse movement.
$(this).mousemove(function (e) {
idleTime = 0;
idleRedirect = 0;
startCountdown.die();
});
$(this).keypress(function (e) {
idleTime = 0;
idleRedirect = 0;
startCountdown.die();
});
$(this).scroll(function (e) {
idleTime = 0;
idleRedirect = 0;
startCountdown.die();
});
})
</script>
编辑似乎对我想如何取消计时器有些困惑。我很抱歉。
基本上,那里有查找键盘输入、鼠标移动或鼠标滚动的代码。当这些条件之一被激活时,我希望时间被它杀死。