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