Javascript 在注销前发出警告

Javascript 在注销前发出警告,javascript,settimeout,Javascript,Settimeout,我想有一个弹出式警报(警告)消息,将给予1分钟前的网页重定向和注销。任何帮助都将不胜感激。多谢各位 (函数(){ var idleDurationSecs=10*60; var redirectUrl='logout.asp';//将空闲用户重定向到此URL var idleTimeout; var resetIdleTimeout=函数(){ if(idleTimeout)clearTimeout(idleTimeout); idleTimeout=setTimeout(函数(){ loca

我想有一个弹出式警报(警告)消息,将给予1分钟前的网页重定向和注销。任何帮助都将不胜感激。多谢各位

(函数(){
var idleDurationSecs=10*60;
var redirectUrl='logout.asp';//将空闲用户重定向到此URL
var idleTimeout;
var resetIdleTimeout=函数(){
if(idleTimeout)clearTimeout(idleTimeout);
idleTimeout=setTimeout(函数(){
location.href=重定向URL
},idleDurationSecs*1000);
};
resetIdleTimeout();
['click'、'touchstart'、'mousemove'].forEach(函数(evt){
document.addEventListener(evt、resetIdleTimeout、false)
});

})();我个人认为不需要警告,如果有,简单的警告可能是不够的。倒计时的跳水最好

但是,如果设置为使用警报,则只需使用第二个超时

var idleTimeout, warningTimeout;

var resetIdleTimeout = function () {
    clearTimeout(idleTimeout);
    clearTimeout(warningTimeout);

    warningTimeout = setTimeout(function () {
        alert("You will be logged out in 1 minute");
    }, (idleDurationSecs-60) * 1000);

    idleTimeout = setTimeout(function () {
        location.href = redirectUrl
    }, idleDurationSecs * 1000);
};

如果您想做一些更高质量的事情,下面是我要做的代码片段。忽略CSS,我只是觉得无聊,让它看起来很漂亮。注意代码和HTML

var n=600;//10分钟
函数倒计时(){
var tm=设定区间(internalFunc,1000);
internalFunc();
函数internalFunc(){
n--;
如果(n==0){
净距(tm);
}
控制台日志(n);
document.getElementById('ElementIDhere123')。innerHTML=n;
var日期=新日期(空);
date.setSeconds(n);//在此处指定秒的值
var result=date.toISOString().substr(11,8);
document.getElementById('ElementIDhere123')。innerHTML=result;
}
};
倒计时()
#ElementIDhere123{
背景:-webkit径向梯度(右中心最远一个角的圆圈,rgb(0151126)0%,rgb(2395104)80%);
背景:-o-径向梯度(右中心最远一个角的圆圈,rgb(0151126)0%,rgb(2395104)80%);
背景:-莫兹径向梯度(右中心最远一个角的圆圈,rgb(0151126)0%,rgb(2395104)80%);
背景:径向梯度(右中心最远的一个圆,rgb(0151126)0%,rgb(2395104)80%);
边界半径:15px;
-moz边界半径:50px;
-webkit边界半径:50px;
颜色:#C2F5FF;
文本对齐:居中;
宽度:90px;
}

计时器占位符
有什么问题吗?我想您可以使用
(idleDurationSecs-60)*1000
持续时间创建另一个超时,然后像现在一样设置/重置它(内部
重置idletimeout
)。在其回调中,您可以显示您的警报。@resetIdleTimeout()如下所示;(idleDurationSecs-60)*1000;事实上,我认为这是一个很好的主意——我不知道该怎么做。感谢您的帮助。这是一个很好的倒计时,但我只希望重定向为不活动。['click'、'touchstart'、'mousemove']。这是如何解决这个问题的?您的代码的这一部分是否不起作用?(关于重置非活动时间)我没有看到它不工作。代码的第一位与它兼容。如果你愿意的话,我可以将两者结合在一起,这样你就有了警报中的计时器。第一个代码是关于重定向的。如果你能将这两个功能结合在一起,那就太好了。事实证明,计时器被冻结在一个警报弹出窗口中,它不会实时更新。所以它将是一个或另一个。了解弹出窗口。一个或另一个意思只是重定向或重定向弹出窗口?或者你指的是使用div?