URL

URL

developer.mozilla.org

The URL interface is used to parse, construct, normalize, and encode URLs. It works by providing properties which allow you to easily read and modify the components of a URL. You normally create a new URL object by specifying the URL as a string when calling its constructor, or by providing a relative URL and a base URL. You can then easily read the parsed components of the URL or make changes to the URL.

If a browser doesn't yet support the URL() constructor, you can access a URL object using the Window interface's Window.URL property. Be sure to check to see if any of your target browsers require this to be prefixed.

Note: This feature is available in Web Workers.

Constructor

new URL() Creates and returns a

URL object referencing the URL specified using an absolute URL string, or a relative URL string and a base URL string.

Properties

hash A

USVString containing a

'#' followed by the fragment identifier of the URL.

host A

USVString containing the domain (that is the

hostname) followed by (if a port was specified) a

':' and the

port of the URL.

hostname A

USVString containing the domain of the URL.

href A

USVString containing the whole URL.

origin Read only Returns a

USVString containing the origin of the URL, that is its scheme, its domain and its port.

password A

USVString containing the password specified before the domain name.

pathname A

USVString containing an initial

'/' followed by the path of the URL.

port A

USVString containing the port number of the URL.

protocol A

USVString containing the protocol scheme of the URL, including the final

':'.

search A

USVString indicating the URL's parameter string; if any parameters are provided, this string includes all of them, beginning with the leading

'?' character.

searchParams Read only A

URLSearchParams object which can be used to access the individual query parameters found in

search.

URL.username A

USVString containing the username specified before the domain name.

Methods

toString() Returns a

USVString containing the whole URL. It is a synonym for

URL.href, though it can't be used to modify the value.

toJSON() Returns a

USVString containing the whole URL. It returns the same string as the

href property.

Static methods

createObjectURL() Returns a

DOMString containing a unique blob URL, that is a URL with

blob: as its scheme, followed by an opaque string uniquely identifying the object in the browser.

revokeObjectURL() Revokes an object URL previously created using

URL.createObjectURL().

Usage notes

The constructor takes a url parameter, and an optional base parameter to use as a base if the url parameter is a relative URL:

const url = new URL('../cats', 'http://www.example.com/cats');
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"

URL properties can be set to construct the URL:

url.hash = 'tabby';
console.log(url.href); // "http://www.example.com/cats#tabby"

URLs are encoded according to the rules found in RFC 3986. For instance:

url.pathname = 'démonstration.html';
console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"

The URLSearchParams interface can be used to build and manipulate the URL query string.

To get the search params from the current window's URL, you can do this:

// https://some.site/?id=123
var parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // 123

The toString() method of URL just returns the value of the href property, so the constructor can be used to normalize and encode a URL directly.

const response = await fetch(new URL('http://www.example.com/démonstration.html'));

Specifications

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 GitHubDesktopMobileChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet

URLChrome Full support 32 Full support 32 Full support 2

Prefixed

Prefixed

Implemented with the vendor prefix: webkitEdge Full support 12Firefox Full support 19

Notes

Full support 19

Notes

Notes Before version 57, Firefox had a bug whereby single quotes contained in URLs are escaped when accessed via URL APIs (see

bug 1386683).Notes To use it from chrome code, JSM and Bootstrap scope, you have to import it with

Cu.importGlobalProperties(['URL']);.IE Full support YesOpera Full support 19 Full support 19 Full support 15

Prefixed

Prefixed

Implemented with the vendor prefix: webkitSafari Full support 7 Full support 7 Full support 6

Prefixed

Prefixed

Implemented with the vendor prefix: webkitWebView Android Full support 4.4 Full support 4.4 Full support 4

Prefixed

Prefixed

Implemented with the vendor prefix: webkitChrome Android Full support 32 Full support 32 Full support 18

Prefixed

Prefixed

Implemented with the vendor prefix: webkitFirefox Android Full support 19

Notes

Full support 19

Notes

Notes Before version 57, Firefox had a bug whereby single quotes contained in URLs are escaped when accessed via URL APIs (see

bug 1386683).Notes To use it from chrome code, JSM and Bootstrap scope, you have to import it with

Cu.importGlobalProperties(['URL']);.Opera Android Full support 19 Full support 19 Full support 14

Prefixed

Prefixed

Implemented with the vendor prefix: webkitSafari iOS Full support 7 Full support 7 Full support 6

Prefixed

Prefixed

Implemented with the vendor prefix: webkitSamsung Internet Android Full support Yes

URL() constructorChrome Full support YesEdge Full support 12Firefox Full support 26IE No support ? — 11Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 26Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

createObjectURL Experimental

Chrome Full support 8Edge Full support 12Firefox Full support 19

Notes

Full support 19

Notes

Notes

createObjectURL() is no longer available within the context of a

ServiceWorker.IE Full support 10Opera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 19

Notes

Full support 19

Notes

Notes

createObjectURL() is no longer available within the context of a

ServiceWorker.Opera Android Full support 14Safari iOS Full support 6Samsung Internet Android Full support Yes

hashChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

hostChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

hostnameChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

hrefChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

originChrome Full support 52Edge Full support 12Firefox Full support 26 Full support 26 No support 26 — 49

Notes

Notes Results for

URL using the

blob scheme incorrectly returned

null.IE ? Opera Full support YesSafari Full support 10WebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 26 Full support 26 No support 26 — 49

Notes

Notes Results for

URL using the

blob scheme incorrectly returned

null.Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

passwordChrome Full support 52Edge Full support 12Firefox Full support 26IE ? Opera Full support YesSafari Full support 10WebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 26Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

pathnameChrome Full support YesEdge Full support 13Firefox Full support 53 Full support 53 No support 22 — 53

Notes

Notes

pathname and

search returned the wrong values so that for a URL of

http://z.com/x?a=true&b=false,

pathname would return "/x?a=true&b=false" and

search would return "", rather than "/x" and "?a=true&b=false" respectively.IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 53 Full support 53 No support 22 — 53

Notes

Notes

pathname and

search returned the wrong values so that for a URL of

http://z.com/x?a=true&b=false,

pathname would return "/x?a=true&b=false" and

search would return "", rather than "/x" and "?a=true&b=false" respectively.Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

portChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

protocolChrome Full support YesEdge Full support 13Firefox Full support 22IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

revokeObjectURL Experimental

Chrome Full support 8Edge Full support 12Firefox Full support 19

Notes

Full support 19

Notes

Notes

revokeObjectURL() is no longer available within the context of a

ServiceWorker.IE Full support 10Opera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 19

Notes

Full support 19

Notes

Notes

revokeObjectURL() is no longer available within the context of a

ServiceWorker.Opera Android Full support 14Safari iOS Full support 6Samsung Internet Android Full support Yes

searchChrome Full support YesEdge Full support 13Firefox Full support 53 Full support 53 No support 22 — 53

Notes

Notes

pathname and

search returned the wrong values so that for a URL of

http://z.com/x?a=true&b=false,

pathname would return "/x?a=true&b=false" and

search would return "", rather than "/x" and "?a=true&b=false" respectively.IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 53 Full support 53 No support 22 — 53

Notes

Notes

pathname and

search returned the wrong values so that for a URL of

http://z.com/x?a=true&b=false,

pathname would return "/x?a=true&b=false" and

search would return "", rather than "/x" and "?a=true&b=false" respectively.Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

searchParamsChrome Full support 51Edge Full support 17Firefox Full support 29IE No support NoOpera Full support YesSafari Full support 10WebView Android Full support 51Chrome Android Full support 51Firefox Android Full support 29Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

toJSONChrome Full support 71Edge Full support 17Firefox Full support 54IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 71Chrome Android Full support 71Firefox Android Full support 54Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

toStringChrome Full support 52Edge Full support 17Firefox Full support 54IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 54Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

usernameChrome Full support 52Edge Full support 12Firefox Full support 26IE ? Opera Full support YesSafari Full support 10WebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 26Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support Full support No support No support Compatibility unknown Compatibility unknownExperimental. Expect behavior to change in the future.

Experimental. Expect behavior to change in the future.See implementation notes.See implementation notes.Requires a vendor prefix or different name for use.

Requires a vendor prefix or different name for use.

See also

Source developer.mozilla.org

Report Page