Показать сообщение отдельно
  #15 (permalink)  
Старый 12.04.2023, 22:38
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 44

Решил проблему, добавив таймер в 1 секунду после вызова showModal:
function getCookie(name) {
    let matches = document.cookie.match(new RegExp(
        "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
    ));
    return matches ? decodeURIComponent(matches[1]) : undefined;
}
document.addEventListener('DOMContentLoaded', function() {
    let mcookie = getCookie("mcookie");
    if (mcookie != "no") {
        setTimeout(function() {
            showModal("obratnyij-zvonok/");
            setTimeout(() => { 
                document.querySelector(".fancybox-close").addEventListener("click", async function() {
                    if ('modalwin' in window) {
                        modalwin.style.display = "none";
                    }
                    // записываем cookie на 1 день, с которой мы не показываем окно
                    let date = new Date;
                    date.setDate(date.getDate() + 1);
                    document.cookie = "mcookie=no; path=/; expires=" + date.toUTCString();
                });
            }, 1000);
        }, 15000);
    }
});


Всем спасибо за помощь и подсказки!
Ответить с цитированием