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

js
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ính currentEntry đã được cập nhật.

Giá trị trả về

Không có (undefined).

Ngoại lệ

InvalidStateError DOMException

Được ném nếu:

  • NavigateEvent khởi tạo không được chặn hoặc đã bị hủy.
  • Document không hoàn toàn hoạt động.
SecurityError DOMException

Được ném nếu thuộc tính isTrusted củ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()setupArticleView() không được cung cấp).

js
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

Tương thích trình duyệt

Xem thêm