Как проверить, если пользователь нажал закрыть в JavaScript - PullRequest
0 голосов
/ 15 мая 2018

Там я закодировал стандартное HTML5 уведомление на рабочем столе, и когда я закрываю уведомление и обновляю страницу, уведомление возвращается снова. Я хочу, чтобы уведомление никогда не возвращалось, когда я закрываю его

вот мой код

 function notifyMe() {
  if (!("Notification" in window)) {
    alert("This browser does not support system notifications");
  }
  else if (Notification.permission === "granted") {
    notify();
  }
  else if (Notification.permission !== 'denied') {
    Notification.requestPermission(function (permission) {
      if (permission === "granted") {
        notify();
      }
    });
  }

  function notify() {
    var notification = new Notification('TITLE OF NOTIFICATION', {
      icon: 'http://carnes.cc/jsnuggets_avatar.jpg',
      body: "Hey! You are on notice!",
    });

    notification.onclick = function () {
      window.open("http://carnes.cc");      
    };
    setTimeout(notification.close.bind(notification), 7000); 
  }

}
notifyMe();

надеюсь, кто-нибудь может мне помочь

ThankYou

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Я думаю, что вы можете сделать с localStorage.

function notifyMe() {
  if (!("Notification" in window)) {
    alert("This browser does not support system notifications");
  }
  else if (Notification.permission === "granted") {
    notify();
  }
  else if (Notification.permission !== 'denied') {
    Notification.requestPermission(function (permission) {
      if (permission === "granted") {
        notify();
      }
    });
  }

  function notify() {
      if (localStorage.close) {
          return false;
      }


    var notification = new Notification('TITLE OF NOTIFICATION', {
      icon: 'http://carnes.cc/jsnuggets_avatar.jpg',
      body: "Hey! You are on notice!",
    });

    notification.onclick = function () {
      window.open("http://carnes.cc");
    };

    notification.onclose = function () {
        localStorage.close = true;
    };

    setTimeout(notification.close.bind(notification), 7000);
  }

}
notifyMe();
0 голосов
/ 15 мая 2018

Вы можете отслеживать уже показанные уведомления в localStorage.Как показано в следующем примере:

function notify() {
    const notifications = localStorage.getItem('notifications', ['TITLE OF NOTIFICATION']) || [];
    const notifiedIndex = notifications.indexOf('TITLE OF NOTIFICATION');
    if (notifiedIndex > -1) {
        var notification = new Notification('TITLE OF NOTIFICATION', {
            icon: 'http://carnes.cc/jsnuggets_avatar.jpg',
            body: "Hey! You are on notice!",
        });

        notification.onclick = function() {
            window.open("http://carnes.cc");
        };
        setTimeout(notification.close.bind(notification), 7000);
        notifications.push('TITLE OF NOTIFICATION');
        localStorage.setItem('notifications', notifications)

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...