Создать пустой объект URL с нуля в JavaScript - PullRequest
4 голосов
/ 26 апреля 2019

Я хочу вручную создать URL из частей, используя объект URL .

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

  1. Есть ли способ как-то преодолеть это ограничение?
  2. Чем вызвано такое дизайнерское решение?

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

Вы уже нашли обходной путь, и нет другого выбора, кроме как передать детали или начать с URL-адреса и изменить его.

Я постараюсь ответить:

Что вообще вызвало такое дизайнерское решение?

Наиболее распространенным вариантом использования URL-адресов было создание URL-адреса из строки URL-адреса.Кто-то действительно закончил тем, что запросил API, который вы описываете в спецификации URL , и обсуждение в основном зашло в тупик.

У нас есть API в Node.js для создания URLиз частей - но это создает строку, которую все равно нужно будет передать конструктору URL.

Так что это, скорее всего, неплохая идея , и в настоящий момент она заблокирована для кого-то на самом деледелает работу по добавлению этой способности .

1 голос
/ 26 апреля 2019

Единственный обходной путь, который я нашел до сих пор, - это использовать минимальный правильный URL для инициализации объекта, а затем переопределить его части (а именно протокол и хост).

const url = new URL('https://example.com');

url.protocol = 'http';
url.host = 'google.com';

console.log(url.toString()); // outputs: http://google.com/

Однако для этого варианта использования он все еще громоздок.

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