Не могу перейти на URL в JavaScript - PullRequest
0 голосов
/ 23 января 2019

Я абсолютный новичок в веб-программировании (только сейчас).Я знаю C, C ++ и x86-assenbly (немного).Я хочу создать свою домашнюю страницу для своего браузера.Это очень простой html по большей части, но я хочу, чтобы в верхней части находилась панель поиска, которая перенаправляет на duckduckgo соответствующие результаты, и именно здесь возникает проблема.Код, который я пытаюсь:

<form>
    <input type="text" id="query"/>
    <button id="button" class="button" onclick="openInDuck()">Search</button>
</form>
<script>
    function openInDuck(){
        var x= "https://duckduckgo.com/?q=";
        x += document.getElementById("query").value;
        window.location = x;
    }
</script>

И да, я забыл, я использую Qutebrowser на Archlinux, если это имеет значение.Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 23 января 2019

Вы близки к решению. В коде JS необходимо добавить .href после window.location, чтобы установить новый href (URL) для текущего окна. В HTML-коде я предлагаю вам использовать атрибут onsubmit для отправки формы с input type="submit":

function openInDuck()
{
  var x = "https://duckduckgo.com/?q=";
  x += document.getElementById('query').value;
  window.location.href = x;
  return false; // Prevent the form submission
}
<form onsubmit="return openInDuck()">
  <input type="text" id="query">
  <input type="submit" id="button" class="button" value="Search">
</form>
0 голосов
/ 23 января 2019

Вы можете использовать ниже

function openInDuck()    {
    var    x="https://duckduckgo.com/?q=";
    x    +=    document.getElementById("query").value;
    window.open(x);
}
0 голосов
/ 23 января 2019

Проблема в том, что ваша форма отправляется при нажатии кнопки, вот так она работает:)

<input type="text" id="query" /> 
<button id="button" class="button" onclick="openInDuck()">Search</button>

<script>
    function openInDuck() {
        var x = "https://duckduckgo.com/?q=";
        x += document.getElementById("query").value;
        window.location = x;
    }
</script>
0 голосов
/ 23 января 2019

Вы пропустили .href при перенаправлении. Также вы должны изменить тип кнопки на button вместо значения по умолчанию;

function openInDuck() {
  var x = "https://duckduckgo.com/?q=";
  x += document.getElementById("query").value;
  window.location.href = x;
}
<form>
  <input type="text" id="query" />
  <button id="button" class="button" onclick="openInDuck()" type="button">Search</button>
</form>

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

...