Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

URL: Statische Methode parse()

Baseline 2024
Neu verfügbar

Seit September 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die statische Methode URL.parse() des Interfaces URL gibt ein neu erstelltes URL-Objekt zurück, das die durch die Parameter definierte URL repräsentiert.

Wenn die angegebene Basis-URL oder die resultierende URL nicht geparst werden kann oder keine gültige URL ist, wird null zurückgegeben. Dies ist eine Alternative dazu, mit dem Konstruktor URL() innerhalb eines try...catch-Blocks eine URL zu erstellen oder die Parameter mit canParse() zu prüfen und null zurückzugeben, falls die Methode false zurückgibt.

Syntax

js
URL.parse(url)
URL.parse(url, base)

Parameter

url

Ein String oder ein anderes Objekt mit einem stringifier, das eine absolute URL oder eine relative Referenz auf eine URL repräsentiert. Wenn url eine relative Referenz ist, ist base erforderlich und wird verwendet, um die endgültige URL zu ermitteln. Wenn url eine absolute URL ist, wird ein angegebenes base nicht zur Erstellung der resultierenden URL verwendet.

base Optional

Ein String, der die Basis-URL für den Fall repräsentiert, dass url eine relative URL ist. Wenn der Parameter nicht angegeben wird, ist sein Standardwert undefined.

Wenn Sie eine base-URL angeben, entsteht die aufgelöste URL nicht einfach durch das Aneinanderhängen von url und base. Relative Referenzen auf das übergeordnete und das aktuelle Verzeichnis werden relativ zum aktuellen Verzeichnis der base-URL aufgelöst. Dieses umfasst nur die Pfadsegmente bis zum letzten Schrägstrich, nicht aber die danach. Weitere Informationen finden Sie unter Relative Referenzen auf eine URL auflösen.

Hinweis: Die Argumente url und base werden jeweils unabhängig vom übergebenen Wert in einen String umgewandelt, beispielsweise wenn Sie ein HTMLAnchorElement- oder HTMLAreaElement-Element übergeben. Dies entspricht dem Verhalten anderer Web-APIs, die einen String akzeptieren. Insbesondere können Sie für beide Argumente ein vorhandenes URL-Objekt verwenden. Es wird anhand seiner Eigenschaft href in einen String umgewandelt.

Rückgabewert

Eine URL, wenn die Parameter zu einer gültigen URL aufgelöst werden können; andernfalls null.

Beispiele

Relative Referenzen auf eine URL auflösen und Konstruktor URL() enthalten weitere Beispiele dafür, wie unterschiedliche Werte für url und base zu einer endgültigen absoluten URL aufgelöst werden (allerdings hauptsächlich unter Verwendung von URL()).

URL.parse() verwenden

Dieses interaktive Beispiel zeigt, wie Sie die statische Methode URL.parse() mit verschiedenen absoluten URLs und relativen Referenzen verwenden.

Zunächst prüfen wir mit der Bedingung "parse" in URL, ob die Methode URL.parse() unterstützt wird. Wenn die Methode unterstützt wird, protokollieren wir die Ergebnisse für eine absolute URL, eine relative Referenz mit einer Basis-URL, eine relative Referenz mit einer komplexeren Basis-URL, eine gültige absolute URL mit einer gültigen Basis-URL (die nicht verwendet wird) sowie eine ungültige Basis-URL, bei der die Methode null zurückgibt.

Wir protokollieren auch den Fall, dass URL.parse() nicht unterstützt wird.

js
if ("parse" in URL) {
  // Absolute URL
  let result = URL.parse("https://developer.mozilla.org/en-US/docs");
  log(`[1]: ${result.href}`);

  // Relative reference to a valid base URL
  result = URL.parse("en-US/docs", "https://developer.mozilla.org");
  log(`[2]: ${result.href}`);

  // Relative reference to a "complicated" valid base URL
  // (only the scheme and domain are used to resolve url)
  result = URL.parse(
    "/different/place",
    "https://developer.mozilla.org:443/some/path?id=4",
  );
  log(`[3]: ${result.href}`);

  // Absolute url argument (base URL ignored)
  result = URL.parse(
    "https://example.org/some/docs",
    "https://developer.mozilla.org",
  );
  log(`[4]: ${result.href}`);

  // Invalid base URL (missing colon)
  result = URL.parse("en-US/docs", "https//developer.mozilla.org");
  log(`[5]: ${result}`);
} else {
  log("URL.parse() not supported");
}

Abschließend zeigt der folgende Code, dass die Argumente keine Strings sein müssen: Für den Parameter base wird ein URL-Objekt übergeben.

js
if ("parse" in URL) {
  // Relative reference with base URL supplied as a URL object
  result = URL.parse("/en-US/docs", new URL("https://developer.mozilla.org/"));
  log(`[6]: ${result.href}`);
}

Die Ergebnisse der einzelnen Prüfungen sind unten zu sehen.

Spezifikationen

Spezifikation
URL
# dom-url-parse

Browser-Kompatibilität

Siehe auch