URL: canParse() statische Methode

Baseline 2023

Newly available

Since December 2023, 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.canParse() statische Methode des URL-Interfaces gibt einen booleschen Wert zurück, der angibt, ob eine absolute URL oder eine relative URL in Kombination mit einer Basis-URL parsbar und gültig ist.

Dies ist eine schnelle und einfache Alternative zur Konstruktion einer URL innerhalb eines try...catch-Blocks. Sie gibt true für dieselben Werte zurück, für die der URL() Konstruktor erfolgreich wäre, und false für Werte, die den Konstruktor zum Werfen bringen würden.

Syntax

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

Parameter

url

Ein String oder ein beliebiges anderes Objekt mit einem Stringifier — einschließlich, zum Beispiel, eines <a> oder <area> Elements — das eine absolute oder relative URL darstellt. Wenn url eine relative URL ist, ist base erforderlich und wird als Basis-URL verwendet. Wenn url eine absolute URL ist, wird eine angegebene base ignoriert.

base Optional

Ein String, der die Basis-URL darstellt, die verwendet wird, wenn url eine relative URL ist. Wird nichts angegeben, ist der Standardwert undefined.

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

Rückgabewert

true, wenn die URL geparst werden kann und gültig ist; false andernfalls.

Beispiele

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

Der erste Teil des Beispiels definiert ein HTML-

-Element zum Protokollieren zusammen mit einer Protokollierungsmethode log().
html
<pre id="log"></pre>
js
const logElement = document.getElementById("log");
function log(text) {
  logElement.innerText += `${text}\n`;
}

Als nächstes prüfen wir, ob die URL.canParse() Methode mit der Bedingung "canParse" in URL unterstützt wird. Wenn die Methode unterstützt wird, protokollieren wir das Ergebnis der Prüfung einer absoluten URL, einer relativen URL ohne Basis-URL und einer relativen URL mit einer gültigen Basis-URL. Wir protokollieren auch den Fall, wenn URL.canParse() nicht unterstützt wird.

js
if ("canParse" in URL) {
  log("Test valid absolute URL");
  let url = "https://developer.mozilla.org/";
  let result = URL.canParse(url);
  log(` URL.canParse("${url}"): ${result}`);

  log("\nTest relative URL with no base URL");
  url = "/en-US/docs";
  result = URL.canParse(url);
  log(` URL.canParse("${url}"): ${result}`);

  log("\nTest relative URL with valid base URL");
  let baseUrl = "https://developer.mozilla.org/";
  result = URL.canParse(url, baseUrl);
  log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
  log("URL.canParse() not supported");
}

Zuletzt zeigt der untenstehende Code, dass baseUrl kein String sein muss. Hier haben wir ein URL-Objekt übergeben.

js
if ("canParse" in URL) {
  log("\nTest relative URL with base URL supplied as a URL object");
  let baseUrl = new URL("https://developer.mozilla.org/");
  let url = "/en-US/docs";
  result = URL.canParse(url, baseUrl);
  log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}

Die Ergebnisse jedes der Tests werden unten angezeigt.

Spezifikationen

If you're able to see this, something went wrong on this page.

Browser-Kompatibilität

If you're able to see this, something went wrong on this page.

Siehe auch