Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Замена ссылки по всему сайту + куки

Опубликовано:

Здравствуйте. Я сделал рабочую функцию, которая позволяет заменить мою реферальную ссылку на внешний сайт на чужую, если потенциальный реферал перешел по ссылке другого пользователя. У меня всё работает, но я хочу спросить у профессионалов правильно ли я всё реализовал.

 

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
               $('#ref_link').attr('href', 'https://mercury.gl/'+hash);
               ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
           }

           }(jQuery, _));
       </script>

 

Здесь идет проверка на корректность ссылки, а то она не корректно заменялась при просмотре сообщения на форуме если переходить по такой ссылке: /forums/?tab=comments#comment-7

window.location.href.indexOf("?ref=") > -1

Рекомендованные сообщения

Опубликовано:

Попробуйте

https://mercury-global.cash/forums/topic/2-merkuriy-global-izmenil-vashu-zhizn/?ref=123#test=123

Опубликовано:
  • Автор

Ну заменяет на то, что после #, как и должно быть вроде как.

Опубликовано:
Ну заменяет на то, что после #, как и должно быть вроде как.

Так должно или вроде?

 

Если перейти по "моей" ссылке, а далее кликнуть на "Регистрация в Меркурий Глобал", то перейдешь на "404 Not Found".

Покажите лучше по какой ссылке переходит юзер, и что на что надо заменить.

 

Пока что не понятно, зачем Вы хеш используете.

Опубликовано:
  • Автор

Стандартная ссылка имеет вид:

 

https://mercury.gl/?ref=id_193761

 

где id_193761 - мой реферальный идентификатор.

 

У каждого пользователя на моем сайте есть ссылка такого вида:

 

https://mercury-global.cash#?ref=id_204018

 

где id_204018 - реф идентификатор того или иного пользователя.

 

Когда пользователь делится своей ссылкой с потенциальным рефералом, все мои ссылки ( стандартные ) заменяются на его, оно работает.

 

Как бы ссылка сформирована автоматически на сайте, и выводится в специальном блоке, пользователю просто скопировать её надо, думаю с этим проблем не будет, но да, можно добавить условией на корректность. И я хотел заменить атрибут откуда заменяется ссылка, вместо href поставить onclick, пробовал неделю назад, не получилось (

post-60255-0-52370100-1531691888_thumb.png

  • 2 месяца спустя...
Опубликовано:
  • Автор

Здравствуйте. Помогите сделать замену ссылки в onclick, потом еще думаю модернизировать так - если в куках уже есть ссылка, то на новую не заменять, если перейдет по новой.

Опубликовано:

Помогите сделать замену ссылки в onclick

Что и где это?

Покажите код

Опубликовано:
  • Автор

Если так не поймете, включу сайт, сейчас в режим оффлайн перевел.

 

У меня на сайте есть ссылки такого вида:

 

<a id="ref_link" href="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

Это моя реферальная ссылка для привлечения рефералов. У меня была задача, чтобы ссылка заменялась, если человека ко мне на сайт привел другой пригласитель по его реферальной ссылки, за это отвечают куки и js:

 

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
               $('#ref_link').attr('href', 'https://mercury.gl/'+hash);
               ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
           }

           }(jQuery, _));
       </script>

 

Пригласитель указывать свою реферальную ссылку в профиле http://prntscr.com/ky0rly и новая готовая ссылка выводится на каждой странице в специальном блоке: http://prntscr.com/ky0s6b

 

Я хочу сделать скрытую ссылку, что-то вроде и чтобы весь функционал сохранил работоспособность:

 

<a id="ref_link" href="https://mercury.gl" onclick="location.href='https://mercury.gl/?ref=id_193761'" >РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

Еще вопрос, может можно это всё дело как-то интегрировать со стандартной реферальной системой комерции?

Изменено пользователем TemKa_SD

Опубликовано:

Еще запутаннее стало.

Я хочу сделать скрытую ссылку, что-то вроде и чтобы весь функционал сохранил работоспособность:

Что это будет делать? Какова цель?

 

Еще вопрос, может можно это всё дело как-то интегрировать со стандартной реферальной системой комерции?

Там рефералы идут за регистрацию.
Опубликовано:
  • Автор

Что это будет делать? Какова цель?

 

Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста, а реф хвост был в онклике. Цель - да просто, чтобы при наведении не пугать пользователей.

Опубликовано:

<a id="ref_link" href="https://mercury.gl" data-ref="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

$( "#ref_link" ).click(function(e) {
e.preventDefault();
location.href = $(e.currentTarget).attr('data-ref');
});

Опубликовано:
  • Автор

Так не хочет

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
             $( "#ref_link" ).click(function(e) {
                 e.preventDefault();
                 location.href = $(e.currentTarget).attr('data-ref');
                 ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
             });
           }

           }(jQuery, _));
       </script>

Опубликовано:

А зачем Вы меняете ссылку, если пишите "Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста"?

Опубликовано:
  • Автор

А зачем Вы меняете ссылку, если пишите "Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста"?

 

Ну да, всё так как вы и написали, только меняться должна в атрибуте data-ref="".

Опубликовано:

Так меняйте.

 

Мой код ничего не меняет.

 

<a id="ref_link" href="https://mercury.gl" data-ref="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

Когда пользователь кликает на ссылку, то переходит не на https://mercury.gl, а на https://mercury.gl/?ref=id_193761

Опубликовано:
  • Автор

Спасибо, вроде работает. А как теперь target="_blank" указать? он сломался ) И скажите по JS коду, всё правильно?

 

		<script type='text/javascript'>
           $( "#ref_link" ).click(function(e) {
               e.preventDefault();
               location.href = $(e.currentTarget).attr('data-ref');
           });
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' ) {
               $('#ref_link').attr('data-ref', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
               $('#ref_link').attr('data-ref', 'https://mercury.gl/'+hash);
               ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
           }

           }(jQuery, _));
       </script>

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.