Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2019, 17:48
Интересующийся
Отправить личное сообщение для admiral Посмотреть профиль Найти все сообщения от admiral
 
Регистрация: 01.11.2016
Сообщений: 22

Окно приветствия
Всем привет, нужна помощь по написанию одного скрипта.
Когда человек, вошел на сайт, нужно подгрузить раньше всего, окно приветствия. Его код:
Код:
<div class="hello">
 <div class="hellotext">
	<div align="center" class="logo">
	  <img src="/logo.png" alt="" />
           Добро пожаловать!
	</div>
 </div>
</div>
Окно должно появится только один раз, скажем так за сессию. То есть пользователь может переходить по сайту, обновлять его, окно больше появляться не должно. Но как только человек вышел с сайта, закрыл его, не был на нем определенное количество времени, и опять зашел, опять показать окно при первом заходе один раз за сессию.

Я так полагаю что нужно запомнить что сайт показал один раз окно в кеш или куки, а после того как человек вышел, и грубо говоря в течении минуты не заходил на сайт, очистить эти куки или кеш. И так по кругу. Кто поможет готов отблагодарить финансово.
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2019, 18:21
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Какой язык на back-end'е?
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2019, 18:30
Интересующийся
Отправить личное сообщение для admiral Посмотреть профиль Найти все сообщения от admiral
 
Регистрация: 01.11.2016
Сообщений: 22

php. Сайт на wp.
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2019, 19:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

На JS делайте, если не знаете структуру модулей CMS.
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2019, 19:13
Интересующийся
Отправить личное сообщение для admiral Посмотреть профиль Найти все сообщения от admiral
 
Регистрация: 01.11.2016
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
На JS делайте, если не знаете структуру модулей CMS.
Так а я что прошу? что бы мне на JS сделали. Написал что даже заплачу за работу.
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2019, 19:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Nexus, сделает, у меня работы и так ... В WP нужно только соблюсти правила подключения пользовательских js-скриптов.
Ответить с цитированием
  #7 (permalink)  
Старый 07.02.2019, 19:24
Интересующийся
Отправить личное сообщение для admiral Посмотреть профиль Найти все сообщения от admiral
 
Регистрация: 01.11.2016
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
Nexus, сделает, у меня работы и так ... В WP нужно только соблюсти правила подключения пользовательских js-скриптов.
Буду ему очень благодарен
Ответить с цитированием
  #8 (permalink)  
Старый 08.02.2019, 07:55
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от admiral
Кто поможет готов отблагодарить финансово.
Напугай цифрами!
Ответить с цитированием
  #9 (permalink)  
Старый 08.02.2019, 08:48
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от admiral
Буду ему очень благодарен
Вот и проверим.
Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	(function(){
		// Указать лимит по времени задержки в часах
		var limit=0.01;
		var hours=1000*60*60;
		var date = localStorage.getItem('date');
		if (date==null) {
			append();
		} else {
			date=new Date(date);
			date=(new Date()-date)/hours;
			if (date>limit) {
				append();
			};
		};
		function append() {
			var html;
			html='<div class="hello">';
			html+='<div class="hellotext">';
			html+='<div align="center" class="logo">';
			html+='<img src="/logo.png" alt="" />';
			html+='Добро пожаловать!';
			html+='</div>';
			html+='</div>';
			html+='</div>';
			$('body').append(html);
			var date=new Date();
			localStorage.setItem('date',date);
		};
	})();
});
</script>
</head>
<body>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 08.02.2019, 09:56
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

<div class="hello" style="display:none" id="welcome-window">
	<div class="hellotext">
		<div align="center" class="logo">
			<img src="/logo.png" alt="" />
			Добро пожаловать!
		</div>
	</div>
</div>
<script>
(function(){
	const timestamp=new Date().getTime();//miliseconds
	const maxInactivePeriod=2;//hours
	const cookieName='welcome_window';
	let lastVisit;

	try{
		lastVisit=+(localStorage.getItem('lastVisit')||timestamp);
		localStorage.setItem('lastVisit',timestamp);
	}catch(e){
		lastVisit=timestamp;
		console.error(e);
	};

	if(
		lastVisit+maxInactivePeriod*3600*1000>timestamp && 
		document.cookie.indexOf(cookieName)>=0
	)
		return;

	const win=document.getElementById('welcome-window');
	if(!win)
		return;

	win.style.display='block';
	document.cookie='name='+cookieName+'; path=/;';
})();
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модальное окно. Salvat Элементы интерфейса 4 25.02.2016 09:33
Как передать переменную в модальное окно sinsir jQuery 24 20.06.2013 16:59
окно поверх таблицы qwertycal Общие вопросы Javascript 2 20.02.2013 13:15
Как закрыть дочерние окно из родительского при помощи переключателя checkbox?? dieseln Общие вопросы Javascript 4 15.12.2010 16:30
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09