Spec-Zone.ru › Web APIs

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.1
6До Safari 14.1, вызов конструктора URL с базовым URL, значение которого равно undefined, приводил к тому, что Safari вызывал исключение TypeError, см. ошибка 216841.
25
26До версии 122, host, hostname и port не обрабатывались для неизвестных протоколов/схем.
14 14.5
6До 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 26
26–49Результаты для URL с использованием схемы blob некорректно возвращали null.
19 10 32 26
26–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

См. также

  • Полифилл URL в core-js
  • API URL
  • Что такое URL?
  • URLSearchParams.

© 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

Spec-Zone.ru

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