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

HTML

<input id="link" />
<button id="add">Add</button>

Javascript

const myButton = document.getElementById('add')
myButton.addEventListener('click', function(event2) {

window.open('link');

})
0
Max Singer 14 Июн 2021 в 22:07

2 ответа

Лучший ответ

Ваш синтаксис неверен. Вы пытаетесь открыть ссылку. Это даже не переменная, а просто строка.

Используйте querySelector или такой селектор, как getElementById, а затем получите значение .

let inputVal = document.querySelector('#link').value;
//Manipulate your URL, add https:// or replace http:// with https:// or add www:



window.open(manipulatedValue);
1
Tushar Shahi 14 Июн 2021 в 19:28

Это невозможно продемонстрировать на примере stackoverflow из-за того, как он изолирован. Но вы можете попробовать что-то вроде ниже:

const link = document.getElementById("link");
const button = document.getElementById("add");
button.addEventListener("click", event => {
  const url = link.value;
  window.open(url);
});

Что касается комментария URL-адреса, не существует простого способа проверить, является ли строка допустимым URL-адресом или нет. Вот ответ, который пытается проверить это с помощью регулярных выражений:

Проверьте, является ли строка JavaScript URL

1
GenericUser 14 Июн 2021 в 19:31