NavigationPrecommitController: phương thức addHandler()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức addHandler() của giao diện NavigationPrecommitController cho phép bạn thêm động một hàm callback handler trong code precommit, hàm này sau đó sẽ được chạy sau khi điều hướng đã được commit.
Điều này hữu ích khi quy trình điều hướng phụ thuộc vào thông tin không được biết cho đến khi code precommit bắt đầu chạy. Nếu precommit và (post-commit) handler là độc lập, handler có thể được chỉ định trong đối số options.handler được truyền cho NavigateEvent.intercept().
Cú pháp
addHandler(handler);
Tham số
handler-
Một hàm callback xác định hành vi xử lý điều hướng post-commit; nó trả về một promise.
Hàm callback handler được gọi như thể nó được truyền cho phương thức
NavigateEvent.intercept(), và sẽ chạy sau khi thuộc tínhcurrentEntryđã được cập nhật.
Giá trị trả về
Không có (undefined).
Ngoại lệ
InvalidStateErrorDOMException-
Được ném nếu:
NavigateEventkhởi tạo không được chặn hoặc đã bị hủy.Documentkhông hoàn toàn hoạt động.
SecurityErrorDOMException-
Được ném nếu thuộc tính
isTrustedcủa sự kiện làfalse.
Ví dụ
Để biết thêm ví dụ, xem NavigationPrecommitController.
Cách sử dụng cơ bản
Ví dụ này cho thấy một triển khai precommitHandler tải dữ liệu cho một trang và sử dụng addHandler() để thêm các handler khác nhau dựa trên loại trang (các triển khai của fetchConfig, setupVideoPlayer() và setupArticleView() không được cung cấp).
navigation.addEventListener("navigate", (event) => {
event.intercept({
async precommitHandler(controller) {
const pageData = await fetchConfig();
if (pageData.type === "video") {
controller.addHandler(() => setupVideoPlayer());
} else {
controller.addHandler(() => setupArticleView());
}
},
});
});
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| HTML> # dom-navigationprecommitcontroller-addhandler> |