megauser Опубликовано 20 декабря, 2019 Жалоба Поделиться Опубликовано 20 декабря, 2019 На сайте присутствует всплывающее приветственное видео при заходе на сайт, но при каждом обновлении оно постоянно всплывает, как записать его в куки чтоб запускалось только 1 раз. Событие на кнопку закрытия видео повесить? в данный момент <div class="fixed_video"> <a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;"> </a> </div> есть линк на видео (которое можно включить самому) ну и по умолчанию через 10 секунд происходит автоматический клик. setTimeout(function(){ $('.fixed_link').trigger('click'); }, 10000); Ну а дальше попытка записать в куки {if !$smarty.cookies.video_fix} <div class="fixed_video"> <a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;"> </a> </div> <script> setTimeout(function(){ $('.fixed_link').trigger('click'); }, 10000); </script> {/if} <script> var $video_fix = document.querySelector('.fixed_video'), $video_fix_Btn = document.querySelector('[data-action="fixed_video"]'); $video_fix_Btn.addEventListener('click', function(){ $video_fix.remove(); document.cookie = "video_fix=true";}) </script> атрибут записал в fancybox.js data-action="fixed_video" повесив его на кнопку закрыть видео. Но что то не записывает в куки. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 20 декабря, 2019 Жалоба Поделиться Опубликовано 20 декабря, 2019 {if $smarty.cookies.video_fix !== 'close'} <div class="fixed_video"> <a class="fixed_link" onclick="document.cookie='video_fix=close;path=/';document.location.reload();" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">X Закрыть</a> </div> <script> setTimeout(function(){ $('.fixed_link').trigger('click'); }, 10000); </script> {/if} http://forum.simplacms.ru/topic/9077-закрыть-всплывающее-окно-с-сохранением-в-куках/ Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 20 декабря, 2019 Жалоба Поделиться Опубликовано 20 декабря, 2019 (изменено) Ваш код тоже правильный, только следует весь код обернуть в if и прописать кнопку закрытия {if !$smarty.cookies.video_fix} <div class="fixed_video"> <button type="button" data-action="fixed_video">Закрыть</button> <a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;"> </a> </div> <script> setTimeout(function(){ $('.fixed_link').trigger('click'); }, 10000); </script> <script> var $video_fix = document.querySelector('.fixed_video'), $video_fix_Btn = document.querySelector('[data-action="fixed_video"]'); $video_fix_Btn.addEventListener('click', function(){ $video_fix.remove(); document.cookie = "video_fix=true"; }) </script> {/if}http://forum.simplacms.ru/topic/14356-предупреждение-о-возрастном-ограничении-18-лет/?hl=smarty.cookies#entry111824 Изменено 20 декабря, 2019 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 20 декабря, 2019 Автор Жалоба Поделиться Опубликовано 20 декабря, 2019 (изменено) {if $smarty.cookies.video_fix !== 'close'} <div class="fixed_video"> <a class="fixed_link" onclick="document.cookie='video_fix=close;path=/';document.location.reload();" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">X Закрыть</a> </div> <script> setTimeout(function(){ $('.fixed_link').trigger('click'); }, 10000); </script> {/if} http://forum.simplacms.ru/topic/9077-закрыть-всплывающее-окно-с-сохранением-в-куках/ Спасибо решение видел, но то что перезагрузка происходит это на мой взгляд плохо. Поэтому хотел через js реализовать. я же вроде обернул все решение или то что все скрипты нужно? {if !$smarty.cookies.video_fix} {/if} Изменено 20 декабря, 2019 пользователем megauser Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 20 декабря, 2019 Жалоба Поделиться Опубликовано 20 декабря, 2019 (изменено) Спасибо решение видел, но то что перезагрузка происходит это на мой взгляд плохо. Поэтому хотел через js реализовать. я же вроде обернул все решение {if !$smarty.cookies.video_fix} {/if} Я выше ваш код подправил и проверил Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix} Изменено 20 декабря, 2019 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 20 декабря, 2019 Автор Жалоба Поделиться Опубликовано 20 декабря, 2019 Я выше ваш код подправил и проверил спасибо, может я затупил) Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 20 декабря, 2019 Автор Жалоба Поделиться Опубликовано 20 декабря, 2019 Я выше ваш код подправил и проверил Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix} у меня проблема в том что я атрибут хочу подключить на крестик закрыть видео, close: '<button data-fancybox-close data-action="fixed_video" class="fancybox-button fancybox-button--close" title="{{CLOSE}}"> это строка параметров из настроек fancybox.js ( 3 версия) и вот через эту кнопку он не срабатывает. Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 20 декабря, 2019 Автор Жалоба Поделиться Опубликовано 20 декабря, 2019 Я выше ваш код подправил и проверил Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix} в общем при первом срабатывании в js добавил просто запись в куки и все. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 20 декабря, 2019 Жалоба Поделиться Опубликовано 20 декабря, 2019 Я не селён в js Надо смотреть, что пишет у вас консоль Тут может быть 2 случая 1. Предопределённая кнопка Возможно не прописалось data-action="fixed_video" 2. Окно fancybox выводится позже скрипта и тогда получается скрипт не понимает, что кнопку нажали Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.