Показать сообщение отдельно
  #17 (permalink)  
Старый 08.02.2019, 16:48
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от SuperZen
если открыть в другом табе, приветствие будут отображено в каждом табе...
Было бы странно, если бы оно не отобразилось. А то какой-смысл открывать новую вкладку, если в ней всё восстановится, что уже есть в открытой вкладке.

Для сайта без регистрации/привязки к человеку это идеальное решение, а так оно должно показываться в зависимости от активности пользователя, т. е. посмотрел на компьютере, ему показали приветствие, потом решил смотреть на телефоне, ему приветствие уже не показывается, т. к. пару минут назад его приветствовали на компьютере.

UPD

Сообщение от SuperZen
видим сессию и все
Сообщение от SuperZen
sessionStorage работает только для одного таба
Ведь вы можете учитывать, откуда появилась вкладка... Если пользователи нашли на странице ссылку и в контекстном меню выбрали открыть в новой вкладке или нажали на вкладке дублировать, то тогда приветствие не нужно, а если отдельно ввели адрес в новой вкладке, то тогда нужно! Если вы позволяете такое мнение, то можно посмотреть на document.referrer

<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(){
	var win = document.getElementById("welcome-window");
	if(
		win && "visited" in sessionStorage === false &&
		new URL(document.referrer, "file:///").host !== location.host
	) {
		win.style.display = "block";
		sessionStorage.visited = true;
	}
})();
</script>

<a href="?test">Link</a>

Последний раз редактировалось Malleys, 08.02.2019 в 16:52. Причина: Пример нужно запускать на реальном сервере... 😉
Ответить с цитированием