javascript — показывать окно с предупреждением за одну минуту до окончания обратного отсчета

Я работаю над модулем онлайн-викторины, который автоматически отправляется через 30 минут. Теперь я хочу показать окно с предупреждением, в котором студент получает уведомление «1 минута до завершения теста» на 29-й минуте. Я не могу понять, как это реализовать. У меня есть мой код, как показано ниже для этого.

$(document).ready(function(){
function get15dayFromNow() {
return new Date(new Date().valueOf() + <?php echo $duration ; ?> * 60 * 1000);
}

var $time_spend = $('#time_spend');
$time_spend.countdown(get15dayFromNow(), function(event) {
$(this).val(event.strftime('%M:%S'));
});

var $clock = $('#clock');
$clock.countdown(get15dayFromNow(), function(event) {
$(this).html('Time Left :   '+'00:'+event.strftime('%M:%S'));
})
.on('finish.countdown', function() {
submitForm();
});

function submitForm()
{
document.getElementById("target").submit();
}
});

4

Решение

Если вы используете скрипт обратного отсчета, как это:
https://www.w3schools.com/howto/howto_js_countdown.asp

Просто измените выражение if:

if (distance < WHATEVERYOUWANT) {
alert("Message");
}
0

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

Вот пример того, как вы можете достичь этого:

function countdown (timer) {

console.log(timer)

if(timer ===5){
alert('halfWay');
} else if (timer === 0){
return;
}

setTimeout(() => countdown(timer - 1), 1000);

}

countdown(10);

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

0

Я бы начал сеанс в php с отметкой времени, когда пользователь начинает тестирование, и регулярно проверял это значение через AJAX. если оставшееся время <= 60 секунд, показать окно предупреждения и прекратить запрос.

0

Может быть, это может сработать:

var $time_spend = $('#time_spend');
$time_spend.countdown(get15dayFromNow(), function(event) {
$(this).val(event.strftime('%M:%S'));
if (event = WHATEVER){
alert('Message');
}
});
0
По вопросам рекламы [email protected]