警报框打开时继续执行

时间:2012-02-20 20:43:52

标签: javascript

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

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;
}

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

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