Zum Inhalt springen

URL

URL-Parsing, Bestandteile und Live-Suchparameter.

Auf dieser Seite
const url = new URL("https://user:pw@example.com:8080/a?x=1#frag");
url.host;     // "example.com:8080"
url.pathname; // "/a"
url.origin;   // "https://example.com:8080"

new URL(input, base?) wirft bei einem Parse-Fehler TypeError. URL.parse(input, base?) gibt stattdessen null zurück, und URL.canParse(input, base?) gibt einen Boolean zurück.

Bestandteile

Die veränderbaren Bestandteile sind href, protocol, username, password, host, hostname, port, pathname, search und hash. origin und searchParams sind schreibgeschützte Attribute.

Hostnamen werden IDNA-normalisiert, und IPv6-Literale behalten ihre eckigen Klammern.

new URL("https://日本.jp/").hostname; // "xn--wgv71a.jp"
new URL("http://[::1]:9000/").host;  // "[::1]:9000"

Die meisten ungültigen Zuweisungen an Bestandteile werden ignoriert. Die Zuweisung eines ungültigen href wirft TypeError. Standardports werden als leerer port serialisiert.

Live-Suchparameter

const url = new URL("https://example.com/?a=1");
const params = url.searchParams;

params.append("b", "2");
url.href; // "https://example.com/?a=1&b=2"

url.search = "?c=3";
params.toString(); // "c=3"

Bei jedem Zugriff wird dasselbe URLSearchParams-Objekt zurückgegeben.

Siehe auch

Reference

Status: Full · 8,682 of 9,046 suite tests pass (96.0%) · since 1.1.0

Exports

ExportKindStatusNotes
URLclassFullURL.parse(), URL.canParse(), href, origin, protocol, username, password, host, hostname, port, pathname, search, searchParams, hash, toJSON()
URLSearchParamsclassFullsize, append(), delete(), get(), getAll(), has(), set(), sort(), iteration

Tests: wpt-wintertc url: 8,682 pass, 364 fail, 0 error, 2,251 skipped. Failing: url/toascii.window.js (298), url/IdnaTestV2.any.js (30), url/url-constructor.any.js (12), url/url-setters.any.js (12), url/urlsearchparams-constructor.any.js (6), url/urlencoded-parser.any.js (2), url/idlharness.any.js, url/url-origin.any.js, and 2 more.

War diese Seite hilfreich?