Перенаправление в подкаталог через ввод формы в JavaScript - PullRequest
0 голосов
/ 22 ноября 2018

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

Среда: MacBookPro - WordPress с Thrive Themes Architect

Цель: Создать простую форму, которая позволяет посетителям вводить имя подкаталога в форму, которая мгновенно перенаправляет их в этот подкаталог после нажатия кнопки отправки.

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

Теории: Может ли перенаправление блокироваться протоколами безопасности браузера или чем-то еще?Отключено ли кодирование?Является ли метод некорректным?

Три из множества неудачных попыток кодирования:

<script type="text/javascript">
  function Redirect(){
  var subDirectory= document.getElementById("sub_directory").value;
  window.location.href= "https://www.thewatercoach.com/" + subDirectory;
  }
</script>
<form>
  <label>www.theWaterCoach.com/</label>
  <input type="text" id="sub_directory">
  <button onclick="Redirect()">Submit</button>
</form>

Результаты: Страница просто обновляет или перезагружает предварительносуществующий URL, но не работает вообще.

<script type="text/javascript">
  function Redirect(){
  var subDirectory= document.getElementById("sub_directory").value;
  window.location.replace(subDirectory);
  }
</script>
<form>
  <label>www.theWaterCoach.com/</label>
  <input type="text" id="sub_directory">
  <button onclick="Redirect()">Submit</button>
</form>

Результаты: Страница просто обновляет или перезагружает ранее существующий URL, но не работает вообще.

<script type="text/javascript">
  function Redirect(){
  var subLink = document.getElementById("sub_Link");
  var subDirectory= document.getElementById("sub_directory").value;
  subLink.href = "https://www.theWaterCoach.com/" + subDirectory;
  subLink.click();
        }
</script>
<form>
   <label>www.theWaterCoach.com/</label>
   <input type="text" id="sub_directory">
   <button onclick="Redirect()">Submit</button>       
</form>
<a id="sub_Link" href="https://www.theWaterCoach.com/">.</a>

Результаты: Этот пример кодирования надежно работал с FireFox, но не с Chrome или Safari.Он также не работает через Chrome на ПК.Для тестирования вы можете ввести Becca в текстовое поле.

Любые идеи или решения будут с благодарностью!

1 Ответ

0 голосов
/ 22 ноября 2018

Кнопка отправки находится внутри тега формы.Поэтому, когда вы нажимаете кнопку отправить, браузер просто отправляет запрос GET на вашу домашнюю страницу.Выполнен код Javascript для перенаправления, но затем он прекращается непосредственно перед отправкой запроса GET.

Решение. Необходимо предотвратить отправку формы.Узнайте, как: прочитать этот вопрос о стековом потоке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...