URL: parse() statische Methode
Baseline 2024Newly 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
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, istbase
erforderlich und wird verwendet, um die endgültige URL zu ermitteln. Wennurl
eine absolute URL ist, wird eine angegebenebase
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 Standardwertundefined
.Wenn Sie eine
base
-URL angeben, ist die ermittelte URL nicht einfach eine Verkettung vonurl
undbase
. Relative Referenzen zum übergeordneten und aktuellen Verzeichnis werden relativ zum aktuellen Verzeichnis derbase
-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.
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.
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
URL()
Constructor, der eine Ausnahme auslöst, wenn die übergebenen Parameter eine ungültige URL definieren- Ein Polyfill von
URL.parse()
ist incore-js
verfügbar.