URL: canParse() 静态方法
注意:此功能在 Web Workers 中可用。
URL 接口的 URL.canParse() 静态方法返回一个布尔值,指示一个绝对 URL,或一个与基础 URL 结合的相对 URL 是否可以解析且有效。
这是在 try...catch 块中构建 URL 的一种快速简便的替代方法。它对于 URL() 构造函数 会成功解析的相同值返回 true,对于会导致构造函数抛出错误的那些值返回 false。
语法
js
URL.canParse(url)
URL.canParse(url, base)
参数
返回值
如果 URL 可以解析且有效,则返回 true;否则返回 false。
示例
这个实时示例演示了如何为几个不同的绝对和相对 URL 值使用 URL.canParse() 静态方法。
示例的第一部分定义了一个用于记录输出的 HTML <pre> 元素,以及一个名为 log() 的记录方法。
html
<pre id="log"></pre>
js
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
接下来,我们使用条件 "canParse" in URL 来检查 URL.canParse() 方法是否受支持。如果该方法受支持,我们将记录检查绝对 URL、没有基础 URL 的相对 URL 以及具有有效基础 URL 的相对 URL 的结果。我们还将记录 URL.canParse() 不受支持的情况。
js
if ("canParse" in URL) {
log("Test valid absolute URL");
let url = "https://mdn.org.cn/";
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://mdn.org.cn/";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
log("URL.canParse() not supported");
}
最后,下面的代码显示 baseUrl 不必是字符串。在这里,我们传递了一个 URL 对象。
js
if ("canParse" in URL) {
log("\nTest relative URL with base URL supplied as a URL object");
let baseUrl = new URL("https://mdn.org.cn/");
let url = "/en-US/docs";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}
每个检查的结果如下所示。
规范
| 规范 |
|---|
| URL # dom-url-canparse |
浏览器兼容性
加载中…