--- title: URL slug: Web/API/URL translation_of: Web/API/URL ---
URL
接口用于解析,构造,规范化和编码 {{glossary("URL", "URLs")}}。 它通过提供允许您轻松阅读和修改URL组件的属性来工作。 通常,通过在调用URL的构造函数时将URL指定为字符串或提供相对URL和基本URL来创建新的URL对象。 然后,您可以轻松读取URL的已解析组成部分或对URL进行更改。
如果浏览器尚不支持{{domxref("URL.URL", "URL()")}}构造函数,则可以使用{{domxref("Window")}}中的{{domxref("Window.URL")}}属性。 确保检查您的任何目标浏览器是否要求对此添加前缀。
{{AvailableInWorkers}}
URL
对象,该URL对象引用使用绝对URL字符串,相对URL字符串和基本URL字符串指定的URL。'#'
的{{domxref("USVString")}},后跟URL的片段标识符。':'。
search
中找到的各个查询参数。href
属性相同的字符串。如果url
参数是相对URL,则构造函数将使用url
参数和可选的base
参数作为基础。
const url = new URL('../cats', 'http://www.example.com/dogs'); console.log(url.hostname); // "www.example.com" console.log(url.pathname); // "/cats"
可以设置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"
{{domxref("URLSearchParams")}}接口可用于构建和处理URL查询字符串。
要从当前窗口的URL获取搜索参数,可以执行以下操作:
// https://some.site/?id=123 const parsedUrl = new URL(window.location.href); console.log(parsedUrl.searchParams.get("id")); // "123"
URL的{{domxref("URL.toString", "toString()")}}方法仅返回{{domxref("URL.href", "href")}} 属性的值,因此构造函数可以 用于直接对URL进行规范化和编码。
const response = await fetch(new URL('http://www.example.com/démonstration.html'));
Specification | Status | Comment |
---|---|---|
{{SpecName('File API', '#creating-revoking', 'URL')}} | {{Spec2('File API')}} | Added the static methods URL.createObjectURL() and URL.revokeObjectURL () . |
{{SpecName('URL', '#api', 'Node')}} | {{Spec2('URL')}} | Initial definition (implements URLUtils ). |
{{Compat("api.URL")}}
URL
object: {{domxref("Window.URL")}}.