Как передать GET параметр

406
02 декабря 2017, 11:06

Всем привет! Столкнулся с задачей передачи GET параметра в ссылку. При переходе к пример с фейсбука, нужно подставить в ссылку другой номер телефона и другой её параметр. К примеру у меня есть ссылка с номером :

Её код:

<a href="tel:035430322" class="mob_bottom">
        03-5430322
</a>

Мне нужно как-то реализовать, что бы при переходе к примеру с того же фейсбука эта ссылка меняла свое значение на следующий:

<a  href="http://example?/tel=4352235643" class="mob_bottom">
        4356435643
    </a>

Не судите строго, ещё учусь Буду благодарен за любую подробную информацию!

Answer 1

Если я правильно понял вопрос, то есть 2 кейса.

Переход по линке с Facebook

Думаю, что на facebook у вас есть некая группа, где вы указываете ссылки для перехода на Ваш сайт.

В этом случае, эту ссылку на фейсбуке можно сделать такой:

my-link-on-my-website.com?tel=11111

Далее, при загрузке уже вашего сайта, смотреть, что есть в url и в зависимости от этого менять содержимое контейнера:

window.onload = function() { //onLoad запустится при загрузке сайта
  var url_string = window.location.href
  var url = new URL(url_string);
  var param = url.searchParams.get("tel");
  if(param) { //Если есть параметр, то выполняем замену текста
      var link = document.getElementById('myLink');
      link.href = 'http://example?/tel=4352235643';
      link.innerHTML = '4352235643';
  }
};

И Ваша разметка поменяется на:

<a  href="http://example?/tel=4352235643" class="mob_bottom" id='myLink'>
    4356435643
</a>

Что такое onLoad и как его кушать описано тут

Прямой переход

При прямом переходе в адресной строке не будет параметров. Событие onLoad все также вызовется, но ничего не сделает, как раз из-за отсутствия параметров.

Важно

Я просто привел пример, как это можно сделать, но это лишь один из возможных вариантов. К тому же, требующий более щепетильных проверок.

  • Если вы используете фреймворк, то это может помочь Вам выполнить подобную обработку

  • Я бы проверял, так же, значение параметра. Дело в том, что GET параметры может подставить в ссылку любой и, если вы будете просто проверять, если ли параметр tel или нет, то выводимое в Вашей ссылки значение может оказаться неожиданным =)

  • Кроме того, возможно решение через просмотр истории, если у Вас есть доступ к бэкенду. JavaScript не позволяет получать доступ к предыдущим URL, только к навигации.

Надеюсь, это поможет

Answer 2

PHP - $_SERVER['HTTP_REFERER']

JS - document.referrer

Нужная вам информация хранится там. Получили и в зависимости от результата вывели все что вам нужно.

READ ALSO
Как в Первой функции получить результат выполнения Второй?

Как в Первой функции получить результат выполнения Второй?

Всем привет! Подскажите, пожалуйста, у меня две функции: Первая формирует данные и передаёт их во Вторую, которая отправляет их на сервер

278
Добавление в таблицу

Добавление в таблицу

Есть список друзей в json

300
валидация полей

валидация полей

Доброго времени суток, есть скрипт на проверку поля логин к примеру

304
Не правильно работает intersectsBox в threejs

Не правильно работает intersectsBox в threejs

Всем привет, есть проблема с методом intersectsBoxЯ его исользую чтобы найти внешние стороны у здания, если они не пересикаются с полом в самом здании...

276