Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • записей
    9
  • комментария
    33
  • просмотра
    7 663

отложенная модалка на джсе


kJlukOo

619 просмотров

 Поделиться

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 комментариев


Рекомендованные комментарии

Нет комментариев для отображения

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.