Display warning after X time of inactivity and logout after X+Y time javascript

梦想的初衷 提交于 2019-12-25 16:52:49

问题


I have seen many answers similar to this question.None helped me resolving this. Issue- I want to display a warning message after 5 minutes of inactivity,If the user is still inactive post 5 minutes of warning, Page should automatically redirect to logoff.jsp. I dont want to use Jquery here.It has to be done using Javascript only. Help!!

var IDLE_TIMEOUT = 15; //seconds
 var _idleSecondsCounter = 0;

 document.onkeypress = function() 
 {
    _idleSecondsCounter = 0;
 };
 document.onclick = function() 
 {
    _idleSecondsCounter = 0;
 };
 document.onmousemove = function()
 {
    _idleSecondsCounter = 0;
 };

 window.setInterval(CheckIdleTime, 1000);

 function CheckIdleTime() {
    _idleSecondsCounter++;
    var oPanel = document.getElementById("SecondsUntilExpire");
    if (oPanel)
        oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + "";
    if (_idleSecondsCounter >= IDLE_TIMEOUT) {
        var answer = confirm("It's been long time you are idle.\nPlease click OK to continue session.\nTo close this session click Cancel.");
        if (answer) 
        {
            //document.location.href = "logout.html";   
            _idleSecondsCounter=0;
        }
        else{
            //window.open('', '_self', ''); window.close();
            document.location.href = "logoff.jsp";
        }

    }
 }

回答1:


Ah, you cannot programmatically close alert() or confirm() or these modals. You've to make your own kind of box if you want to do that.

When you show confirm(), your JS execution is automatically paused. So you'll need to create your custom dialog box using HTML/CSS.

function tempAlert(msg,duration)
{
    var el = document.createElement("div");
    el.setAttribute("style","position:absolute;top:40%;left:20%;background-color:white;");
    el.innerHTML = msg;
    setTimeout(function(){
        el.parentNode.removeChild(el);
        // 5 minutes over. sign off user
    },duration);
    document.body.appendChild(el);
}

tempAlert("We're signing you off in 5 minutes",5*60000);


来源:https://stackoverflow.com/questions/42506714/display-warning-after-x-time-of-inactivity-and-logout-after-xy-time-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!