Показать сообщение отдельно
  #1 (permalink)  
Старый 14.08.2019, 15:39
Новичок на форуме
Отправить личное сообщение для Temax Посмотреть профиль Найти все сообщения от Temax
 
Регистрация: 14.08.2019
Сообщений: 2

Проблема с 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);
  		});
  	}
  }
Ответить с цитированием