|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии JavaScript Подключение js |
Подключение js |
Решил подключить такой скрипт
Код document.querySelector('button').onclick = function(){ var button = this; var buttonText = this.innerText; button.setAttribute("disabled", true); window.open(button.dataset.link, '_blank'); var secondsUntilNextClick = 10; var interval = setInterval(function(){ secondsUntilNextClick--; button.innerText = secondsUntilNextClick; if (secondsUntilNextClick === 0){ clearInterval(interval); button.innerText = buttonText; button.removeAttribute("disabled"); } }, 1000) } к такому виду материалов Код <div class="eTitle" style="text-align:left;"><a target="_blank" href="$SITE_URL$">$TITLE$</a> <button id="yourButton" data-link="$SITE_URL$">ПЕРЕЙТИ</button></div> <style> button{ padding: 4px 10px; background-color: green; color: white } button:disabled{ background-color: red; } </style> <script src="http://freebit.clan.su/js/time60.js"></script> Работа скрипта заключается в том чтобы была кнопка на добавленный сайт после нажатия на которую этот сайт открывался в новой вкладке, после чего кнопка стает не активной в течение 10 секунд. Всё работает но только для последнего добавленного сайта. На все остальные сайты почему то не переходит? Подскажите что нужно исправить? За ранее благодарю! Подключение должно происходить именно в виде материалов так как для каждого сайта нужны разные скрипт, а точнее время неактивной кнопки! Прикрепления:
6804522.png
(6.1 Kb)
Сообщение отредактировал Chesterfield5017 - Понедельник, 30 Апр 2018, 02:32:45
|
Chesterfield5017, если я вас правильно понял, вам нужно данный скрипт "привязывать" к каждому материалу, то есть привязать id материала к скрипту этого материала, сейчас, при добавлении этого скрипта в шаблон вид материалов, он дублируется с каждым выводимым материалом, количество выставляется в настройках модуля, поэтому он срабатывает только с одним материалом, нужно привязать скрипт, с помощью $ID$ (так как эта переменная уникальная, и дважды не повторяется) к каждому конкретному выводимому материалу
Сообщение отредактировал LuСiFеr - Понедельник, 30 Апр 2018, 03:19:32
|
Мне нужно привязать не к $ID$ а к $SITE_URL$ у каждого материала он разный
|
|
Сделал кнопку так
Код <button id="yourButton" data-link="$ID$">ПЕРЕЙТИ</button> |
Ошибка в идентификации нажатой кнопки, вернее, он для всех кнопок одинаковый. Я бы посоветовал.
Поставить каждой кнопке id c использованием $ID$, а потом поиск не по селектору а по id document.getElementById($ID$).onclick = function() Но в таком варианте как вы хотите, много дублирующего javascript кода. Я бы делал такую штуку, отслеживая нажатую кнопку на странице через target |
Подскажите свой вариант если не сложно. Буду очень благодарен!
Добавлено (30 Апр 2018, 14:39:19) --------------------------------------------- Поставил кнопку так Код <button id="yourButton" data-link="$ID$">ПЕРЕЙТИ</button> Код document.getElementById($ID$).onclick = function(){ var button = this; var buttonText = this.innerText; button.setAttribute("disabled", true); window.open(button.dataset.link, '_blank'); var secondsUntilNextClick = 10; var interval = setInterval(function(){ secondsUntilNextClick--; button.innerText = secondsUntilNextClick; if (secondsUntilNextClick === 0){ clearInterval(interval); button.innerText = buttonText; button.removeAttribute("disabled"); } }, 1000) } вообще нечего не срабатывает. Пере проверил срабатывать то срабатывает но проблема остается таже Сообщение отредактировал Chesterfield5017 - Понедельник, 30 Апр 2018, 16:53:53
|
Хах.. нельзя на тарабам подставлять)
|
Ну так я не пойму как поставить каждой кнопке id с использованием $ID$ если у кнопки уже есть id="yourButton" или просто замисть текусчего значения поставить $ID$?
Добавлено (02 Май 2018, 13:14:03) Код Array.from(document.querySelectorAll('button')).map(function(btn){ btn.onclick = function(){ var btnText = this.innerText; btn.setAttribute("disabled", true); window.open(btn.dataset.link, '_blank'); var secondsUntilNextClick = 10; var interval = setInterval(function(){ secondsUntilNextClick--; btn.innerText = secondsUntilNextClick; if (secondsUntilNextClick === 0){ clearInterval(interval); btn.innerText = btnText; btn.removeAttribute("disabled"); } }, 1000) }}) |
Куки добавить ссылка на урок
|
Есть вот такой скрипт
Код Array.from(document.querySelectorAll('button')).map(function(btn){ btn.onclick = function(){ var btnText = this.innerText; btn.setAttribute("disabled", true); window.open(btn.dataset.link, '_blank'); var secondsUntilNextClick = 10; var interval = setInterval(function(){ secondsUntilNextClick--; btn.innerText = secondsUntilNextClick; if (secondsUntilNextClick === 0){ clearInterval(interval); btn.innerText = btnText; btn.removeAttribute("disabled"); } }, 1000) }}) |
Все делается гораздо проще. В виде материала оставляете только кнопку с каким-нибудь классом, к примеру
Код <button class="site-url-button" data-link="$SITE_URL$">ПЕРЕЙТИ</button> Код $('.site-url-button').on('click', function() { var btn = $(this), buttonText = btn.text(); $(this).prop('disabled', true); // или attr вместо prop (в зависимости от версии jquery) window.open(btn.attr('data-link') , '_blank'); var secondsUntilNextClick = 10, interval = setInterval(function(){ secondsUntilNextClick--; btn.text(secondsUntilNextClick); if (secondsUntilNextClick === 0){ clearInterval(interval); btn.text(buttonText); btn.removeAttr('disabled'); } }, 1000); }) Один и тот же скрипт не будет повторяться 10 раз. Куки вам вообще не нужны. Зачем они вам? Чтоб показать пользователю сколько раз он кликнул по кнопке? Так он и так знает). Муж рассказал жене, что у него есть любовница. Причина смерти: коронавирус.
|
Добрый день Ув. служба поддержки. Помогите пожалуйста понять запрещены ли на Вашем хостинге сайты парсеры, которые просто воруют контент с других сайтов. Недавно мне попались два таких сайта размещенных на юкоз. Подскажите с Вашей стороны будут ли приняты к ним меры по ограничению к сайтам?
Доказательством парсинга являются урлы страниц (новостей) сайта, Да Вы и сами как профессионалы легко можете определить относиться данй сайт к парсингу. Дело в том, что считаю не справедливым размещения таких сайтов, которые не применяя усилий просто ворую контент других сайтов в том числе клиентов Юкоз. Пожалуйста дайте оценку данным сайтам, и какая реакция последует с Вашей стороны. Надеюсь Вы так же боритесь за размещение нормальных сайтов на вашем хостинге. Спасибо заранее за ответ. Вот 2 сайта: http://kinopersik.net и http://1doma.tv И если нет ни каких запретов по этому поводу, значит можно свободно создавать такие же парсинг сайты? |
nosa4svetlana, если вы являетесь правообладателем контента, воспользуйтесь формой для жалоб https://www.ucoz.ru/abuse
P.S. Писать сообщения следует не отклоняясь от заявленной в топике темы, избегая оверквотинга (цитирования большого объёма) и сообщений о состоянии процесса, если речь о помощи. |
| |||
| |||