


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


если вы имеете в виду перенаправление на страницу Google после ввода, это будет работать
document.querySelector('.finder').addEventListener('focusout',function(){
location.replace("https://www.google.com/search?q = " + document.querySelector('.finder').textContent);
});
это отправит пользователя на страницу Google с необходимыми запросами, когда они покинут поле ввода.
если вам нужно сделать что-то похожее, но на вашем веб-сайте, лучшим вариантом будет отправить пользователя на другую страницу с данными запроса в URL-адресе и некоторым бэкэндом для создания и возврата нужной страницы.
или вы можете отправить выборку и получить информацию о фокусе
если вы щелкнете вне ввода, это вызовет выделение фокуса, если вы хотите что-то на вводе, это сработает для вас w3schools.com/howto/howto_js_trigger_button_enter.asp
Вы можете добавить прослушиватель событий, скажем, к кнопке.
При нажатии этой кнопки значение в поле поиска будет добавлено в конец ссылки поиска Google.
Однако, поскольку вы можете ожидать, что люди будут вводить предложения (а URL-адреса не используют пробелы), вы можете использовать replace(), чтобы заменить все пробелы, в нашем случае, на + (формат URL для пробелов — %20, но пробелы в запросах обычно заменен символом +).
Наконец, вы можете использовать window.open(), чтобы открыть новое окно, в котором используется наша ссылка.
ОБНОВЛЕНИЕ: вы можете использовать нажатие клавиши в качестве триггера для прослушивателя событий, а затем проверить, является ли введенная клавиша «Вводом», поэтому вам не нужна кнопка.
Вот пример:
const SEARCH_GOOGLE_VALUE = document.getElementById('SEARCH_GOOGLE_VALUE');
SEARCH_GOOGLE_VALUE.addEventListener("keypress", (keyboard) => {
if (keyboard.key == "Enter") {
let value = SEARCH_GOOGLE_VALUE.value;
value = value.replace(' ', '+');
let link = "https://www.google.com/search?q = " + value;
window.open(link);
}
});Мне нужно сделать это без кнопки. И нажав ENTER.
Вы можете использовать «нажатие клавиши» вместо «щелчка», таким образом, каждый раз, когда вы вводите клавишу в поле ввода, функция будет вызываться, тогда вы можете просто установить оператор if для продолжения, только если введенная клавиша «Enter» ; Я изменю код.
Спасибо за изменение кода, но у меня проблема. ошибка "SEARCH_GOOGLE_VALUE имеет значение null". Я не понимаю, почему. Я добавил "id = "SEARCH_GOOGLE_VALUE" во входные данные. Или мне нужно добавить что-то еще?
Это означает, что JS не может найти ваш элемент на странице. Убедитесь, что теги ID одинаковы как в HTML, так и в JS. Также может случиться так, что вы поместите свой JS перед вашими HTML-элементами, тогда JS не сможет найти элемент, поскольку он еще не существует, обязательно поместите свой JS под вашими HTML-элементами.
Я не понимаю, как работает focusout? Что я должен делать? Сбросить фокус, нажав на пустое место?