URL: phương thức tĩnh canParse()
Baseline
2023
Newly available
Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Note: This feature is available in Web Workers.
Phương thức tĩnh URL.canParse() của giao diện URL trả về một giá trị boolean cho biết một URL tuyệt đối, hoặc một URL tương đối kết hợp với URL cơ sở, có thể phân tích và hợp lệ hay không.
Đây là một lựa chọn thay thế nhanh và dễ cho việc tạo một URL bên trong khối try...catch.
Nó trả về true cho cùng các giá trị mà URL() constructor sẽ thành công, và false cho các giá trị sẽ khiến constructor ném lỗi.
Cú pháp
URL.canParse(url)
URL.canParse(url, base)
Tham số
url-
Một chuỗi hoặc bất kỳ đối tượng nào khác có stringifier - bao gồm, ví dụ, một phần tử
<a>hoặc<area>- đại diện cho một URL tuyệt đối hoặc tương đối. Nếuurllà một URL tương đối,baselà bắt buộc, và sẽ được dùng làm URL cơ sở. Nếuurllà một URL tuyệt đối,baseđược cung cấp sẽ bị bỏ qua. baseOptional-
Một chuỗi đại diện cho URL cơ sở dùng trong trường hợp
urllà một URL tương đối. Nếu không chỉ định, giá trị mặc định làundefined.
Giá trị trả về
true nếu URL có thể được phân tích và hợp lệ; false nếu không.
Ví dụ
Ví dụ trực tiếp này minh họa cách dùng phương thức tĩnh URL.canParse() với một vài giá trị URL tuyệt đối và tương đối khác nhau.
Phần đầu của ví dụ định nghĩa một phần tử HTML <pre> để ghi log, cùng với một phương thức ghi log log().
<pre id="log"></pre>
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
Tiếp theo chúng ta kiểm tra xem phương thức URL.canParse() có được hỗ trợ hay không bằng điều kiện "canParse" in URL.
Nếu phương thức được hỗ trợ, chúng ta ghi lại kết quả kiểm tra một URL tuyệt đối, một URL tương đối không có URL cơ sở, và một URL tương đối với một URL cơ sở hợp lệ.
Chúng ta cũng ghi lại trường hợp URL.canParse() không được hỗ trợ.
if ("canParse" in URL) {
log("Test valid absolute URL");
let url = "https://mdn.go-mizu.dev/";
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.go-mizu.dev/";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
log("URL.canParse() không được hỗ trợ");
}
Cuối cùng, đoạn mã dưới đây cho thấy baseUrl không nhất thiết phải là chuỗi.
Ở đây chúng ta đã truyền vào một đối tượng URL.
if ("canParse" in URL) {
log("\nTest relative URL with base URL supplied as a URL object");
let baseUrl = new URL("https://mdn.go-mizu.dev/");
let url = "/en-US/docs";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}
Kết quả của từng kiểm tra được hiển thị bên dưới.
Thông số kỹ thuật
| Specification |
|---|
| URL> # dom-url-canparse> |
Tương thích trình duyệt
Xem thêm
URL()- Polyfill của
URL.canParse()có sẵn trongcore-js