URL: parse() statische Methode
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 URL darstellt, die durch die Parameter definiert ist.
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 innerhalb eines try...catch Blocks eine URL
zu konstruieren, oder canParse()
zu verwenden, 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 einen relativen Verweis auf eine URL darstellt. Wenn
url
ein relativer Verweis ist, istbase
erforderlich und wird verwendet, um die endgültige URL zu erstellen. 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 verwendet wird, wenn
url
eine relative URL ist. Wenn nicht angegeben, ist der Standardwertundefined
.Wenn Sie eine
base
URL angeben, ist die aufgelöste URL nicht einfach eine Verkettung vonurl
undbase
. Relative Verweise auf das übergeordnete und aktuelle Verzeichnis werden relativ zum aktuellen Verzeichnis derbase
URL aufgelöst, das nur Pfadsegmente bis zum letzten Schrägstrich enthält, jedoch keine danach. Relative Verweise auf das Wurzelverzeichnis werden relativ zum Basis-Ursprung aufgelöst. Für weitere Informationen siehe Resolving relative references to a URL.
Hinweis:
Die Argumente url
und base
werden jeweils aus dem von Ihnen übergebenen Wert als String dargestellt, wie z.B. einem HTMLAnchorElement
oder HTMLAreaElement
Element, ähnlich wie bei anderen Web-APIs, die einen String akzeptieren.
Insbesondere können Sie ein vorhandenes URL
Objekt für eines der Argumente 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 zusätzliche Beispiele, die zeigen, wie unterschiedliche url
und base
Werte zu einer endgültigen absoluten URL aufgelöst werden (obwohl hauptsächlich URL()
verwendet wird).
Verwendung von URL.parse()
Dieses Live-Beispiel zeigt, wie die URL.parse()
statische Methode für einige unterschiedliche 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 eines Tests mit einer absoluten URL, einem relativen Verweis und einer Basis-URL, einem relativen Verweis 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 folgende Code, dass die Argumente keine Strings sein müssen, indem ein URL
Objekt als 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 der einzelnen Prüfungen werden unten angezeigt.
Spezifikationen
Specification |
---|
URL Standard # dom-url-parse |
Browser-Kompatibilität
BCD tables only load in the browser
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