docs.rodeo

MDN Web Docs mirror

URL

{{APIRef("URL API")}}  {{AvailableInWorkers}} 

The URL interface is used to parse, construct, normalize, and encode {{glossary("URL", "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.

Constructor

Instance properties

Static methods

Instance methods

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/dogs");
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"

The constructor will raise an exception if the URL cannot be parsed to a valid URL. You can either call the above code in a try...catch block or use the {{domxref("URL.canParse_static", "canParse()")}}  static method to first check the URL is valid:

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");
}

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 {{domxref("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
const parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // "123"

The {{domxref("URL.toString", "toString()")}}  method of URL just returns the value of the {{domxref("URL.href", "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

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN