Вариант с помощью cookies:
<script>
var ok=true;
var notification_id='123123123123';
var notification_check=readCookie("notification");
if (notification_check==notification_id){ok=false;};
function sendNotification(title, options) {
//create cook
createCookie("notification",notification_id,"1");
if (ok){
// Проверим, поддерживает ли браузер HTML5 Notifications
if (!("Notification" in window)) {
alert('Ваш браузер не поддерживает HTML Notifications, его необходимо обновить.');
}
// Проверим, есть ли права на отправку уведомлений
else if (Notification.permission === "granted") {
// Если права есть, отправим уведомление
var notification = new Notification(title, options);
function clickFunc() {window.location.href = 'http://aviaciya.com/specpredlozheniya_aviakompanij/';}
notification.onclick = clickFunc;
}
// Если прав нет, пытаемся их получить
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Если права успешно получены, отправляем уведомление
if (permission === "granted") {
var notification = new Notification(title, options);
} else {
alert('Вы запретили показывать уведомления'); // Юзер отклонил наш запрос на показ уведомлений
}
});
} else {
// Пользователь ранее отклонил наш запрос на показ уведомлений
// В этом месте мы можем, но не будем его беспокоить. Уважайте решения своих пользователей.
}
}
}
//cookie
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
</script>
<script type="text/javascript" async>
sendNotification('Зимние скидки на авиабилеты!', {
body: 'Распродажа, сезонные скидки',
icon: 'http://avia-avia.ru/image/samolet_p.png',
dir: 'auto'
});</script>
Чтобы показать уведомление если оно изменилось, нужно менять значение
notification_id