Как я могу отправить сообщение и установить время истечения срока действия этого состояния сообщения, хранящегося в локальном хранилище?

88
8

if(localStorage.getItem('popState') != 'shown'){
$(function () {
$('[data-toggle="popover"]').popover({
content : "....."
});
$('[data-toggle="popover"]').popover('show');
});
localStorage.setItem('popState','shown')
}

Я использую метод выше, чтобы отображать всплывающее сообщение для пользователя во время загрузки страницы и отключать всплывающее сообщение, которое будет отображаться после загрузки во второй раз. Как я могу сделать это автоматически всплывающее окно пользователю через определенный промежуток времени? например, после закрытия пользователем всплывающего сообщения, оно будет отображаться автоматически через час.

спросил(а) 2021-01-25T18:36:47+03:00 4 месяца, 2 недели назад
1
Решение
63

Вы можете использовать для этого интервал:

const showPopup = function showPopup() {
const lastShown = localStorage.getItem('popStateLastShown');
const hasOneHourPassed = lastShown ?
(Math.abs(new Date(lastShown) - new Date()) / 36e5) >= 1 :
false;

if (hasOneHourPassed || localStorage.getItem('popState') !== 'shown') {
// Show popup

localStorage.setItem('popState', 'shown');
localStorage.setItem('popStateLastShown', new Date());
}
};

// Run code immediately.
showPopup();

// Check again after an hour.
setInterval(showPopup, 36e5);

ответил(а) 2021-01-25T18:36:47+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема