JavaScript — таймер обратного отсчета на нескольких страницах

У меня есть таймер на домашней странице. Когда пользователь выполняет какое-либо действие, например, перемещение мыши, таймер сбрасывается. Когда таймер обратного отсчета до 05:00, система отобразит предупреждение для сброса таймера, нажав «ОК». Если в течение 5 минут не будет выполнено никаких действий и таймер обратного отсчета до 00:00, пользователь будет вынужден выйти из системы.
Моя проблема в том, что этот таймер работает только на одной странице, если у меня открыто две страницы, таймер сбрасывается только на целевой странице. Я все еще выйду из-за несфокусированной страницы.

Может ли кто-нибудь помочь мне в этом? Спасибо!

<script type="text/javascript">
var flag = false;
startTimer();
function startTimer() {
var presentTime = $("#Status").text().toString();
var timeArray = presentTime.split(":");
var m = timeArray[0];
var s = checkSecond((timeArray[1] - 1));
if(s==59) {
m=m-1;
if(m < 10) {
m = "0" + m;
}
}

if (m==05 && s==00) {
flag = true;
BootstrapDialog.alert("You have 5 minutes remaining in your session. Click \"OK\" to extend the session.", function() {
flag = false;
resetTimer();
});
}

if(!flag) {
//Reset timer upon user action
document.onload = resetTimer;
document.onmousemove = resetTimer;
document.onmousedown = resetTimer;
document.ontouchstart = resetTimer;
document.onclick = resetTimer;
document.onscroll = resetTimer;
document.onkeydown = resetTimer;
}
else {
document.onload = null;
document.onmousemove = null;
document.onmousedown = null;
document.ontouchstart = null;
document.onclick = null;
document.onscroll = null;
document.onkeydown = null;
}

if (m==0 && s==00) {
window.location.replace("/Logout");
};

setTimeout(startTimer, 1000);
}

function checkSecond(sec) {
if (sec < 10 && sec >= 0) {sec = "0" + sec};
if (sec < 0) {sec = "59"};
return sec;
}

function resetTimer() {
$("#Status").html("30:00");
}
</script>

<div> Your session has <h5 id="Status">30:00</h5> remaining. </div>

0

Решение

Ваша проблема в том, что вы хотите управлять двумя страницами одним скриптом, но переменные на каждой странице независимы.

если вы решите эту проблему, вы можете контролировать свою страницу.

Вы можете получить переменные m и s из cookie или localalstorage. varibales в cookie и localalstorage можно посетить на другой странице, если эти страницы находятся в одном корне.

попробуйте, просто замените variables.get && установить его из cookie или локального хранилища

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]