Есть код который работает с одним глюком. Может я смысл не понимаю, но он заносит данные в cookie каждую посещенную страницу по отдельности.
Т.е. заходим на главную www.site.com - всплывает модалка, закрываем ее (больше на главной модалка не появляется)
Переходим с главной на www.site.com/page1/ - опять всплывает таже модалка (соответственно на этих страницах при закрытии она больше не отобразится, но будет отображаться на других не посещенных страницах сайта...)
Как сделать, так чтоб модалка отобразилась только один раз - не зависимо на какой странице пользователь оказался в первые прийдя на сайт?
const cookieStorage = {
getItem: (item) => {
const cookies = document.cookie
.split(';')
.map(cookie => cookie.split('='))
.reduce((acc, [key, value]) => ({ ...acc, [key.trim()]: value }), {});
return cookies[item];
},
setItem: (item, value) => {
document.cookie = `${item}=${value};`
}
}
const storageType = cookieStorage;
const consentPropertyName = 'jdc_consent';
const shouldShowPopup = () => !storageType.getItem(consentPropertyName);
const saveToStorage = () => storageType.setItem(consentPropertyName, true);
window.onload = () => {
const acceptFn = event => {
saveToStorage(storageType);
consentPopup.classList.add('hidden');
}
const consentPopup = document.getElementById('consent-popup');
const acceptBtn = document.getElementById('accept');
acceptBtn.addEventListener('click', acceptFn);
if (shouldShowPopup(storageType)) {
setTimeout(() => {
consentPopup.classList.remove('hidden');
}, 3000);
}
};