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
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
urleine relative Referenz ist, istbaseerforderlich und wird verwendet, um die endgültige URL zu ermitteln. Wennurleine absolute URL ist, wird ein angegebenesbasenicht zur Erstellung der resultierenden URL verwendet. baseOptional-
Ein String, der die Basis-URL für den Fall repräsentiert, dass
urleine relative URL ist. Wenn der Parameter nicht angegeben wird, ist sein Standardwertundefined.Wenn Sie eine
base-URL angeben, entsteht die aufgelöste URL nicht einfach durch das Aneinanderhängen vonurlundbase. Relative Referenzen auf das übergeordnete und das aktuelle Verzeichnis werden relativ zum aktuellen Verzeichnis derbase-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.
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.
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
- Konstruktor
URL(), der eine Ausnahme auslöst, wenn die übergebenen Parameter eine ungültige URL definieren - Ein Polyfill für
URL.parse()ist incore-jsverfügbar