The URL() constructor returns a newly created URL object representing the URL defined by the parameters.
If the given base URL or the resulting URL are not valid URLs, the JavaScript TypeError exception is thrown.
Note: This feature is available in Web Workers.
Syntax
const url = new URL(url [, base])
Parameters
url- A
USVStringrepresenting an absolute or relative URL. Ifurlis a relative URL,baseis required, and will be used as the base URL. Ifurlis an absolute URL, a givenbasewill be ignored. baseOptional- A
USVStringrepresenting the base URL to use in caseurlis a relative URL. If not specified, it defaults to''.
Note: You can still use an existing URL object for the base, which stringifies itself to the object's href property.
Exceptions
| Exception | Explanation |
|---|---|
TypeError |
url (in the case of absolute URLs) or base + url (in the case of relative URLs) is not a valid URL. |
Examples
// Base urls
let m = 'https://developer.mozilla.org';
let a = new URL("/", m); // => 'https://developer.mozilla.org/'
let b = new URL(m); // => 'https://developer.mozilla.org/'
new URL('en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs'
let d = new URL('/en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', d); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', a); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', "https://developer.mozilla.org/fr-FR/toto");
// => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', ''); // Raises a TypeError exception as '' is not a valid URL
new URL('/en-US/docs'); // Raises a TypeError exception as '/en-US/docs' is not a valid URL
new URL('http://www.example.com', ); // => 'http://www.example.com/'
new URL('http://www.example.com', b); // => 'http://www.example.com/'
new URL("//foo.com", "https://example.com") // => 'https://foo.com' (see relative URLs)
Specification
| Specification | Status | Comment |
|---|---|---|
| URL The definition of 'URL.URL()' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
URL() constructor | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 26 | IE No support ? — 11 | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support 26 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- No support
- No support
See also
- The interface it belongs to:
URL.