URL: parse() statische Methode

Baseline 2024
Newly available

Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

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

Wenn die angegebene Basis-URL oder die resultierende URL nicht analysierbar und gültig sind, wird null zurückgegeben. Dies ist eine Alternative zur Verwendung des URL()-Konstruktors, um eine URL innerhalb eines try...catch-Blocks zu konstruieren, oder zur Verwendung von canParse(), um die Parameter zu überprüfen und null zurückzugeben, wenn 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 zu einer URL darstellt. 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 eine angegebene base nicht verwendet, um die resultierende URL zu erstellen.

base Optional

Ein String, der die Basis-URL darstellt, die in Fällen verwendet wird, in denen url eine relative URL ist. Falls nicht angegeben, ist der Standardwert undefined.

Wenn Sie eine base-URL angeben, ist die ermittelte URL nicht einfach eine Verkettung von url und base. Relative Referenzen zum übergeordneten und aktuellen Verzeichnis werden relativ zum aktuellen Verzeichnis der base-URL aufgelöst, das nur Pfadsegmente bis zum letzten Schrägstrich, aber keine danach enthält. Relative Referenzen zur Wurzel werden relativ zum Basis-Ursprung aufgelöst. Weitere Informationen finden Sie unter Resolving relative references to a URL.

Hinweis: Die Argumente url und base werden von dem Wert, den Sie übergeben, wie ein HTMLAnchorElement oder HTMLAreaElement-Element, stringifiziert, genau wie bei anderen Web-APIs, die einen String akzeptieren. Insbesondere können Sie ein vorhandenes URL-Objekt für jedes Argument verwenden, und es wird aus der href-Eigenschaft des Objekts stringifiziert.

Rückgabewert

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

Beispiele

Resolving relative references to a URL und URL() constructor bieten weitere Beispiele, die zeigen, wie unterschiedliche url- und base-Werte zu einer endgültigen absoluten URL aufgelöst werden (hauptsächlich durch die Verwendung von URL()).

Verwendung von URL.parse()

Dieses Live-Beispiel zeigt, wie die URL.parse()-statische Methode für einige verschiedene absolute und relative Referenzwerte verwendet wird.

Zuerst überprüfen wir, ob die URL.parse()-Methode unterstützt wird, indem wir die Bedingung "parse" in URL verwenden. Wenn die Methode unterstützt wird, protokollieren wir das Ergebnis der Überprüfung einer absoluten URL, einer relativen Referenz und einer Basis-URL, einer relativen Referenz mit einer komplizierteren Basis-URL, einer gültigen absoluten URL mit einer gültigen Basis-URL (die nicht verwendet wird), und einer ungültigen Basis-URL, die dazu führt, dass die Methode null zurückgibt.

Wir protokollieren auch den Fall, wenn 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");
}

Zuletzt zeigt der untenstehende Code, dass die Argumente keine Strings sein müssen, indem ein URL-Objekt für den base-Parameter übergeben wird.

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 jedes der Checks sind unten zu sehen.

Spezifikationen

Specification
URL
# dom-url-parse

Browser-Kompatibilität

Siehe auch