Проблема с SetTimeOut оповещением
Здравствуйте, хочу сделать напоминание на сайте, где время оповещения выбирает пользователь, но SetTimeOut не отрабатывает как надо, я хотел достать время через поля number, потом перевести все в часы и установить delay для SetTimeOut
Вот код: <input class = "mt-3" type="button" value = "Напомнить мне" onclick = "notifSet()"> <br> <label for="">Day: <input name = "day" min = "0" max = "30" type="number"> </label> <label for="">Hour: <input name = "hour" min = "0" max = "24" type="number"> </label> <label for="">Minute: <input name = "minute" min = "0" max = "60" type="number"> </label> <label for="">Seconde: <input name = "seconde" min = "0" max = "60" type="number"> </label>
function notifyMe () {
var notification = new Notification ("ToDo List App", {
tag : "ache-mail",
body : "Вам пришло уведомление",
});
}
function notifSet () {
var day = document.getElementsByName("day").value;
var hour = document.getElementsByName("hour").value;
var minute = document.getElementsByName("minute").value;
var seconde = document.getElementsByName("seconde").value;
day = parseFloat(day);
hour = parseFloat(hour);
minute = parseFloat(minute);
seconde = parseFloat(seconde);
if(hour === 24){
day++;
}
if(minute === 60){
hour++;
}
if(seconde === 60){
minute++;
}
day = day * 24;
minute = minute / 60;
seconde = seconde / 3600;
var sum = day + minute + hour + seconde;
var res = sum * 3600000;
if (!("Notification" in window))
alert ("Ваш браузер не поддерживает уведомления.");
else if (Notification.permission === "granted")
setTimeout(notifyMe, res);
else if (Notification.permission !== "denied") {
Notification.requestPermission (function (permission) {
if (!('permission' in Notification))
Notification.permission = permission;
if (permission === "granted")
setTimeout(notifyMe, res);
});
}
}
|
Temax, тебе нужно просто перевести все в миллисекунды...
Зачем ты делаешь все эти лишние вычисления и сравнения? Просто умножь дни на количество в них миллисекунд... Потом аналогично поступи с часами, минутами и секундами... Потом все сложи - это и есть нужная пауза. ;) |
Спасибо Вам за помощь, все заработало, да я реально ступил, что можно было сразу в миллисекунды перевести и еще не срабатывало потому что getElementsByName было. я поставил ById и все сработало!:dance:
|
| Часовой пояс GMT +3, время: 14:24. |