我见过许多类似这个问题的答案。没有人帮我解决这个问题。 问题 - 我希望在5分钟不活动后显示警告消息,如果用户在发出5分钟警告后仍处于非活动状态,则Page应自动重定向到logoff.jsp。 我不想在这里使用Jquery。它必须只使用Javascript完成。 帮助!!
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";
}
}
}
答案 0 :(得分:0)
啊,您无法以编程方式关闭alert()
或confirm()
或这些模式。如果你想这样做的话,你可以制作自己的盒子。
当您显示confirm()
时,您的JS执行会自动暂停。因此,您需要使用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);