Как определить, человек заходит на страницу по адресной строке или переходит на нее с сайта?
Добрый день. Есть мультистраничник. При заходе через адресную строку включается прелоадер. Но сайт имеет несколько страниц и при клике на логотип с другой странице, человека перенаправляет на главной где снова включается прелоадер. Но суть в том что если пользователь заходит на главную через клик по логотипу от других страница, не надо что бы включался прелоадер. Вообщем как в js сделать такое условие, что бы определить , человек перешел с с внутренней страницы либо зашел как в первый раз через адресную строку
А зачем это в JS делать? Не будет ли вернее на сервере (предположу, что PHP) посмотреть адрес реферрера и на его основе вообще смотреть, надо ли генерить блок кода. Так, при желании, можно вообще единовременный показ организовать.
Если же строго на клиенте надо - то все равно удобнее будет сделать через LocalStorage/cookies с временем жизни в один сеанс
Механика:
1. При загрузке страницы проверяем, есть ли кука или запись в ls.
2. Если записи нет - показываем прелоадер.
3. Когда прелоадер посмотрели, делаем запись
4. Если запись есть, просто ничего не показываем. (значит, прелоадер уже смотрели)
Проще, но не всегда работает. Тут больше от конкретной задачи зависит, что нужно сделать. Одно дело, если это приветственный баннер, совсем другое - если речь про стандартную всплывашку при загрузке.
Сервер может и не передать инфу о том, с какого сайта к вам пришли.
Поэтому идеальный вариант зависит от задачи, а оптимальный состоит из комбинации фронтовой и бэк проверки.
Можно навесить на ссылку (на страницах сайта) параметр например mysite.ru?preloader=no.
Отследить на JS и отключать его.
Вот так можно параметры достать из url https://stackoverflow.com/questions/979975/how-to-...