URL: Statische Methode canParse()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Dezember 2023 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die statische Methode URL.canParse() der URL-Schnittstelle gibt einen booleschen Wert zurück, der angibt, ob eine absolute URL oder eine relative URL in Kombination mit einer Basis-URL geparst werden kann und gültig ist.
Dies ist eine schnelle und einfache Alternative dazu, eine URL innerhalb eines try...catch-Blocks zu erzeugen. Die Methode gibt für dieselben Werte true zurück, für die der URL()-Konstruktor erfolgreich wäre, und false für Werte, bei denen der Konstruktor eine Ausnahme auslösen würde.
Syntax
URL.canParse(url)
URL.canParse(url, base)
Parameter
url-
Ein String oder ein anderes Objekt mit einem Stringifier – beispielsweise ein
<a>- oder<area>-Element –, das eine absolute oder relative URL darstellt. Wennurleine relative URL ist, istbaseerforderlich und wird als Basis-URL verwendet. Wennurleine absolute URL ist, wird ein angegebener Wert fürbaseignoriert. baseOptional-
Ein String, der die Basis-URL angibt, die verwendet wird, wenn
urleine relative URL ist. Wenn kein Wert angegeben wird, ist der Standardwertundefined.
Hinweis:
Die Argumente url und base werden unabhängig vom übergebenen Wert jeweils in einen String umgewandelt, wie bei anderen Web-APIs, die einen String akzeptieren.
Insbesondere können Sie für beide Argumente ein vorhandenes URL-Objekt verwenden. Es wird anhand der href-Eigenschaft des Objekts in einen String umgewandelt.
Rückgabewert
true, wenn die URL geparst werden kann und gültig ist; andernfalls false.
Beispiele
Dieses interaktive Beispiel zeigt, wie Sie die statische Methode URL.canParse() mit verschiedenen absoluten und relativen URL-Werten verwenden.
Im ersten Teil des Beispiels werden ein HTML-Element <pre> für die Protokollausgabe und eine Protokollierungsmethode log() definiert.
<pre id="log"></pre>
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
Anschließend prüfen wir mit der Bedingung "canParse" in URL, ob die Methode URL.canParse() unterstützt wird.
Wenn die Methode unterstützt wird, protokollieren wir die Ergebnisse für eine absolute URL, eine relative URL ohne Basis-URL und eine relative URL mit einer gültigen Basis-URL.
Wir protokollieren auch den Fall, dass URL.canParse() nicht unterstützt wird.
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");
}
Abschließend zeigt der folgende Code, dass baseUrl kein String sein muss.
Hier übergeben wir ein URL-Objekt.
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 der einzelnen Prüfungen sind unten zu sehen.
Spezifikationen
| Spezifikation |
|---|
| URL> # dom-url-canparse> |
Browser-Kompatibilität
Siehe auch
URL()- Ein Polyfill für
URL.canParse()ist incore-jsverfügbar.