URL: метод canParse() статический
Базовая версия 2023
Новое
С декабря 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.
Примечание: Эта функция доступна в рабочих процессах.
Статический метод URL.canParse() интерфейса URL возвращает логическое значение, указывающее, может ли быть проанализирован и является ли допустимым абсолютный URL или относительный URL, объединённый с базовым URL.
Это быстрый и простой способ проверить возможность анализа URL без использования блока try...catch. Он возвращает true для тех же значений, для которых конструктор URL() будет успешным, и false для значений, которые приведут к ошибке при использовании конструктора.
Синтаксис
URL.canParse(url) URL.canParse(url, base)
Параметры
url-
Строка или любой другой объект со строковым преобразованием — включая, например, элемент
<a>или<area>— представляющий абсолютный или относительный URL. Еслиurlявляется относительным URL,baseявляется обязательным и будет использоваться в качестве базового URL. Еслиurlявляется абсолютным URL, указанныйbaseбудет проигнорирован. baseНеобязательный-
Строка, представляющая базовый URL, используемый в случае, когда
urlявляется относительным URL. Если не указано, по умолчанию используетсяundefined.
Возвращаемое значение
true если URL может быть проанализирован и является допустимым; false в противном случае.
Примеры
Этот интерактивный пример демонстрирует использование статического метода URL.canParse() для нескольких значений абсолютных и относительных URL.
В первой части примера определён HTML-элемент <pre> для вывода сообщений, а также метод log() для вывода сообщений.
<pre id="log"></pre>
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
Далее мы проверяем, поддерживается ли метод URL.canParse() с помощью условия "canParse" in URL. Если метод поддерживается, выводим результат проверки абсолютного URL, относительного URL без базового URL и относительного URL с допустимым базовым URL. Также выводим результат в случае, когда метод URL.canParse() не поддерживается.
if ("canParse" in URL) {
log("Test valid absolute URL");
let url = "https://developer.mozilla.org/";
let result = URL.canParse(url);
log(` URL.canParse("${url}"): ${result}`);
log("\nTest relative URL with no base URL");
url = "/en-US/docs";
result = URL.canParse(url);
log(` URL.canParse("${url}"): ${result}`);
log("\nTest relative URL with valid base URL");
let baseUrl = "https://developer.mozilla.org/";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
log("URL.canParse() not supported");
}
Наконец, код ниже показывает, что baseUrl не обязательно должен быть строкой. Здесь мы передали объект URL.
if ("canParse" in URL) {
log("\nTest relative URL with base URL supplied as a URL object");
let baseUrl = new URL("https://developer.mozilla.org/");
let url = "/en-US/docs";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}
Результаты каждой проверки показаны ниже.
Спецификации
| Спецификация |
|---|
| URL # dom-url-canparse |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
canParse_static |
120 | 120 | 115 | 106 | 17 | 120 | 115 | 80 | 17 | 25.0 | 120 |
См. также
URL()-
Полифил
URL.canParse()доступен в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/canParse_static