Spec-Zone.ru › Web APIs

URL: метод parse() static

Примечание: Эта функция доступна в Потоках Web Workers.

Статический метод URL.parse() интерфейса URL возвращает новый созданный объект URL, представляющий URL, определенный параметрами.

Если заданный базовый URL или полученный URL не являются допустимыми и разборчивыми URL, возвращается null. Это альтернатива использованию конструктора URL() для создания объекта URL в блоке try...catch или использованию canParse() для проверки параметров и возврата null в случае, если метод вернул false.

Синтаксис

URL.parse(url)
URL.parse(url, base)

Параметры

url

Строка или любой другой объект со строковым преобразованием, представляющий абсолютный URL или относительную ссылку на URL. Если url является относительной ссылкой, требуется base и используется для разрешения окончательного URL. Если url является абсолютным URL, заданный base не будет использован для создания конечного URL.

base Необязательно

Строка, представляющая базовый URL, который используется в случае, если url является относительным URL. Если не указан, по умолчанию используется undefined.

Когда вы указываете base URL, результирующий URL не является просто конкатенацией url и base. Относительные ссылки на родительский каталог и текущий каталог разрешаются относительно текущего каталога base URL, который включает только сегменты пути до последнего слеша, но не любые после. Относительные ссылки на корень разрешаются относительно базового происхождения. Для получения дополнительной информации см. Разрешение относительных ссылок на URL.

Примечание: Аргументы url и base будут преобразованы в строки из любого значения, которое вы передадите, например, из элемента HTMLAnchorElement или HTMLAreaElement, так же, как и в других API Веба, которые принимают строки. В частности, вы можете использовать существующий объект URL для любого аргумента, и он будет преобразован в строку из свойства href объекта.

Возвращаемое значение

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

Примеры

Разрешение относительных ссылок на URL и URL() конструктор предоставляют дополнительные примеры, демонстрирующие, как разные значения url и base разрешаются в конечный абсолютный URL (хотя в основном с использованием URL()).

Использование URL.parse()

Этот пример демонстрирует, как использовать статический метод URL.parse() для нескольких различных абсолютных и относительных значений ссылок.

Сначала мы проверяем, поддерживается ли метод URL.parse() с помощью условия "parse" in URL. Если метод поддерживается, мы выводим результат проверки абсолютного URL, относительной ссылки и базового URL, относительной ссылки с более сложным базовым URL, валидного абсолютного URL с валидным базовым URL (который не используется) и невалидного базового URL, в результате чего метод вернул null.

Мы также выводим случай, когда URL.parse() не поддерживается.

if ("parse" in URL) {
  // Absolute URL
  let result = URL.parse("https://developer.mozilla.org/en-US/docs");
  log(`[1]: ${result.href}`);

  // Relative reference to a valid base URL
  result = URL.parse("en-US/docs", "https://developer.mozilla.org");
  log(`[2]: ${result.href}`);

  // Relative reference to a "complicated" valid base URL
  // (only the scheme and domain are used to resolve url)
  result = URL.parse(
    "/different/place",
    "https://developer.mozilla.org:443/some/path?id=4",
  );
  log(`[3]: ${result.href}`);

  // Absolute url argument (base URL ignored)
  result = URL.parse(
    "https://example.org/some/docs",
    "https://developer.mozilla.org",
  );
  log(`[4]: ${result.href}`);

  // Invalid base URL (missing colon)
  result = URL.parse("en-US/docs", "https//developer.mozilla.org");
  log(`[5]: ${result}`);
} else {
  log("URL.parse() not supported");
}

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

if ("parse" in URL) {
  // Relative reference with base URL supplied as a URL object
  result = URL.parse("/en-US/docs", new URL("https://developer.mozilla.org/"));
  log(`[6]: ${result.href}`);
}

Результаты каждой проверки показаны ниже.

Спецификации

Спецификация
URL
# dom-url-parse

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
parse_static 126 126 126 112 18 126 126 83 18 Нет 126

См. также

  • URL() конструктор, который выбрасывает исключение, если переданные параметры определяют недействительный URL
  • Полифил URL.parse() доступен в core-js

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/URL/parse_static

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API