我有一个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;
}
答案 0 :(得分:7)
不使用警报,只需使用模态对话框(基本上是浮在其他所有内容上的div),或者在最坏的情况下使用弹出窗口。
答案 1 :(得分:2)
我非常怀疑这在javascript中是可行的,因为它在浏览器的ui线程中运行...
但是你可以用jquery-ui(对话框小部件)或类似的javascript框架做你想做的事情!