отложенная модалка на джсе
var delay_sec = 10 * 60; // 10 min function init_delayed_modal() { var first_visit_time = get_cookie('first_visit_time'); var current_time = new Date().getTime() / 1000; var time_passed; if(first_visit_time == undefined) { // first time visit create_cookie('first_visit_time', current_time); setTimeout(show_modal,delay_sec * 1000); } else { // two and more time visit time_passed = current_time - first_visit_time; //if time left if(time_passed>delay_sec) show_modal(); else setTimeout(show_modal,(delay_sec - time_passed) * 1000); } } function show_modal() { // set cookie and show modal create_cookie('modal_alredy_show', true); alert('modal'); } //https://stackoverflow.com/questions/1458724/how-do-i-set-unset-a-cookie-with-jquery function get_cookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\/\+^])/g, '\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } //https://stackoverflow.com/questions/1458724/how-do-i-set-unset-a-cookie-with-jquery function create_cookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else expires = ""; document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; } if(get_cookie('modal_alredy_show') == undefined) init_delayed_modal();
допустим нам необходимо однократно показать юзеру сообщение спустя 10 минут нахождения на сайте. чистый джс
0 комментариев
Рекомендованные комментарии
Нет комментариев для отображения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас