警报框打开时继续执行

continue execution while alert box is on

本文关键字:继续 执行      更新时间:2023-09-26

我有一个Javascript块,它在其中根据鼠标移动创建计时器。如果你没有做任何活动,计时器就会启动,当它到达剩余时间1分钟时,它会向用户显示警报,如果用户没有响应,它会导航到另一个页面。我面临的问题是,当我向用户显示警报时,计时器执行停止,它只等待用户按下回车键。我需要的是,无论用户是否单击"确定",计时器都应该在后台继续。

var mins, secs, TimerRunning, TimerID;
TimerRunning = false;
var activity;
document.documentElement.onmousemove = function () {
    clearInterval(activity);
     activity = Init();
   // activity = setInterval(saySomething, 5000);
}
function Init() //call the Init function when u need to start the timer
{
    mins = 2;
    secs = 0;
    StopTimer();
    StartTimer();
}
function StopTimer() {
    if (TimerRunning)
        clearTimeout(TimerID);
    TimerRunning = false;
}
function StartTimer() {
    TimerRunning = true;
    window.status = "if no activity is detected you will be logged out in " + Pad(mins) + ":" + Pad(secs);
    TimerID = self.setTimeout("StartTimer()", 1000);
    Check();
    if (mins == 0 && secs == 0)
        StopTimer();
    if (secs == 0) {
        mins--;
        secs = 60;
    }
    secs--;

}
function Check() {
    if (mins == 1 && secs == 0)
        toggle();
     alert("You have only 2 minutes remaining");
    if (mins == 0 && secs == 0) {
        window.location = "http://Test";
    }
}
function Pad(number) //pads the mins/secs with a 0 if its less than 10
{
    if (number < 10)
        number = number;
    return number;
}

不要使用警报,只需使用模式对话框(基本上是一个浮动在其他所有内容之上的div),或者在最坏的情况下使用弹出窗口。

我非常怀疑这在javascript中是否可行,因为它在浏览器的ui线程中运行
但是您可以使用jqueryui(对话框小部件)或类似的javascript框架来做您想做的事情!