URL
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна в Web Workers.
Интерфейс URL используется для разбора, построения, нормализации и кодирования URL. Он работает, предоставляя свойства, которые позволяют легко читать и изменять компоненты URL.
Обычно новый объект URL создается путем указания URL в качестве строки при вызове его конструктора или путем предоставления относительного URL и базового URL. Затем вы можете легко прочитать разобранные компоненты URL или внести изменения в URL.
Конструктор
URL()-
Создает и возвращает объект
URLиз строки URL и необязательной строки базового URL. Выбрасывает исключение, если переданные аргументы не определяют допустимый URL.
Свойства экземпляра
hash-
Строка, содержащая
'#'и идентификатор фрагмента URL. host-
Строка, содержащая домен (т. е. имя хоста), за которым следует (если был указан порт)
':'и порт URL. hostname-
Строка, содержащая домен URL.
href-
Строковое представление, возвращающее строку, содержащую весь URL.
-
originТолько чтение -
Возвращает строку, содержащую начало URL, т. е. его схему, домен и порт.
password-
Строка, содержащая пароль, указанный перед именем домена.
pathname-
Строка, содержащая начальный
'/'за которым следует путь URL, не включая строку запроса или фрагмент. port-
Строка, содержащая номер порта URL.
protocol-
Строка, содержащая схему протокола URL, включая заключительный
':'. search-
Строка, обозначающая строку параметров URL; если параметры указаны, эта строка включает все из них, начиная с ведущего символа
?. -
searchParamsТолько чтение -
Объект
URLSearchParams, который можно использовать для доступа к отдельным параметрам запроса, найденным вsearch. username-
Строка, содержащая имя пользователя, указанное перед именем домена.
Статические методы
canParse()-
Возвращает логическое значение, указывающее, можно ли разобрать URL, определённый из строки URL и необязательной строки базового URL, и является ли он допустимым.
createObjectURL()-
Возвращает строку, содержащую уникальный URL объекта BLOB, т. е. URL со схемой
blob:, за которой следует некоторая уникальная строка, идентифицирующая объект в браузере. parse()-
Создает и возвращает объект
URLиз строки URL и необязательной строки базового URL, или возвращаетnullесли переданные параметры определяют недопустимыйURL. revokeObjectURL()-
Отменяет URL объекта, созданный ранее с помощью
URL.createObjectURL().
Методы экземпляра
toString()-
Возвращает строку, содержащую весь URL. Это синоним для
URL.href, хотя его нельзя использовать для изменения значения. toJSON()-
Возвращает строку, содержащую весь URL. Возвращает ту же строку, что и свойство
href.
Примечания к использованию
Конструктор принимает параметр url, и необязательный параметр base, используемый в качестве базового, если параметр url является относительным URL:
const url = new URL("../cats", "http://www.example.com/dogs");
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"
Конструктор вызовет исключение, если URL не может быть разобран в допустимый URL. Вы можете либо вызвать приведенный выше код в блоке try...catch, либо использовать статический метод canParse() для предварительной проверки валидности URL:
if (URL.canParse("../cats", "http://www.example.com/dogs")) {
const url = new URL("../cats", "http://www.example.com/dogs");
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"
} else {
console.log("Invalid URL"); //Invalid URL
}
Свойства URL могут быть установлены для построения URL:
url.hash = "tabby"; console.log(url.href); // "http://www.example.com/cats#tabby"
URL кодируются в соответствии с правилами, описанными в RFC 3986. Например:
url.pathname = "démonstration.html"; console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"
Интерфейс URLSearchParams может быть использован для построения и изменения строки запроса URL.
Чтобы получить параметры поиска из текущего URL окна, можно сделать следующее:
// https://some.site/?id=123
const parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // "123"
Метод toString() объекта URL просто возвращает значение свойства href, поэтому конструктор может использоваться для нормализации и кодирования URL напрямую.
const response = await fetch(
new URL("http://www.example.com/démonstration.html"),
);
Спецификации
| Спецификация |
|---|
| URL # url |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
URL |
19 | 12До Edge 79, аргументы запроса в основном URL-адресе удалялись при вызове конструктораURL. |
26До версии 122,host, hostname и port не обрабатывались для неизвестных протоколов/схем. |
15 | 14.16До Safari 14.1, вызов конструктораURL с базовым URL, значение которого равно undefined, приводил к тому, что Safari вызывал исключение TypeError, см. ошибка 216841. |
25 | 26До версии 122,host, hostname и port не обрабатывались для неизвестных протоколов/схем. |
14 | 14.56До Safari на iOS 14.1, вызов конструктораURL с базовым URL, значение которого равно undefined, приводил к тому, что Safari на iOS вызывал исключение TypeError, см. ошибка 216841. |
1.5 | 4.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|
URL |
3219 | 12 | 19До версии 57, в Firefox была ошибка, из-за которой одиночные кавычки в URL-адресах экранировались при доступе через URL API (см. ошибка 1386683). |
1915 | 76 | 3225 | 19До версии 57, в Firefox для Android была ошибка, из-за которой одиночные кавычки в URL-адресах экранировались при доступе через URL API (см. ошибка 1386683). |
1914 | 76 | 2.01.5 | 4.44 |
canParse_static |
120 | 120 | 115 | 106 | 17 | 120 | 115 | 80 | 17 | 25.0 | 120 |
createObjectURL_static |
19 | 12 | 19createObjectURL() больше недоступен в контексте ServiceWorker. |
15 | 6 | 25 | 19createObjectURL() больше недоступен в контексте ServiceWorker. |
14 | 6 | 1.5 | 4.4 |
hash |
32 | 13 | 22 | 19 | 7 | 32 | 22 | 19 | 7 | 2.0 | 4.4.3 |
host |
32 | 13 | 22 | 19 | 7 | 32 | 22 | 19 | 7 | 2.0 | 4.4.3 |
hostname |
32 | 13 | 22 | 19 | 10 | 32 | 22 | 19 | 10 | 2.0 | 4.4.3 |
href |
32 | 13 | 22 | 19 | 10 | 32 | 22 | 19 | 10 | 2.0 | 4.4.3 |
origin |
32 | 12 | 2626–49Результаты дляURL с использованием схемы blob некорректно возвращали null. |
19 | 10 | 32 | 2626–49Результаты дляURL с использованием схемы blob некорректно возвращали null. |
19 | 10 | 6.0 | 4.4.3 |
parse_static |
126 | 126 | 126 | 112 | 18 | 126 | 126 | 83 | 18 | Нет | 126 |
password |
32 | 12 | 26 | 19 | 10 | 32 | 26 | 19 | 10 | 6.0 | 4.4.3 |
pathname |
32 | 13 | 22До Firefox 53,pathname и search возвращали неверные значения для пользовательских протоколов. Учитывая protocol:host/x?a=true&b=false, pathname возвращал "/x?a=true&b=false", а search возвращал "", а не "/x" и "?a=true&b=false" соответственно. См. ошибка 1310483. |
19 | 10 | 32 | 22До Firefox для Android 53,pathname и search возвращали неверные значения для пользовательских протоколов. Учитывая protocol:host/x?a=true&b=false, pathname возвращал "/x?a=true&b=false", а search возвращал "", а не "/x" и "?a=true&b=false" соответственно. См. ошибка 1310483. |
19 | 10 | 2.0 | 4.4.3 |
port |
32 | 13 | 22 | 19 | 10 | 32 | 22 | 19 | 10 | 2.0 | 4.4.3 |
protocol |
32 | 13 | 22 | 19 | 10 | 32 | 22 | 19 | 10 | 2.0 | 4.4.3 |
revokeObjectURL_static |
19 | 12 | 19revokeObjectURL() больше недоступен в контексте ServiceWorker. |
15 | 6 | 25 | 19revokeObjectURL() больше недоступен в контексте ServiceWorker. |
14 | 6 | 1.5 | 4.4 |
search |
32 | 13 | 22До Firefox 53,pathname и search возвращали неверные значения для пользовательских протоколов. Учитывая protocol:host/x?a=true&b=false, pathname возвращал "/x?a=true&b=false", а search возвращал "", а не "/x" и "?a=true&b=false" соответственно. См. ошибка 1310483. |
19 | 10 | 32 | 22До Firefox для Android 53,pathname и search возвращали неверные значения для пользовательских протоколов. Учитывая protocol:host/x?a=true&b=false, pathname возвращал "/x?a=true&b=false", а search возвращал "", а не "/x" и "?a=true&b=false" соответственно. См. ошибка 1310483. |
19 | 10 | 2.0 | 4.4.3 |
searchParams |
51 | 17 | 29 | 38 | 10.1 | 51 | 29 | 41 | 10.3 | 5.0 | 51 |
toJSON |
71 | 17 | 54 | 58 | 11 | 71 | 54 | 50 | 11 | 10.0 | 71 |
|---|---|---|---|---|---|---|---|---|---|---|---|
toString |
19 | 17 | 54 | 15 | 7 | 25 | 54 | 14 | 7 | 6.0 | 4.4 |
username |
32 | 12 | 26 | 19 | 10 | 32 | 26 | 19 | 10 | 6.0 | 4.4.3 |
См. также
© 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