Navigation
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Giao diện Navigation của Navigation API cho phép kiểm soát mọi hành động điều hướng cho window hiện tại ở một nơi trung tâm, bao gồm khởi tạo điều hướng theo chương trình, kiểm tra các mục lịch sử điều hướng, và quản lý điều hướng khi chúng diễn ra.
Giao diện này được truy cập qua thuộc tính Window.navigation.
Navigation API chỉ hiển thị các mục lịch sử được tạo trong ngữ cảnh duyệt web hiện tại có cùng nguồn gốc với trang hiện tại (ví dụ: không phải các điều hướng bên trong <iframe> nhúng, hoặc điều hướng xuyên nguồn gốc), cung cấp một danh sách chính xác tất cả các mục lịch sử trước đó chỉ dành cho ứng dụng của bạn. Điều này làm cho việc duyệt lịch sử ít dễ hỏng hơn nhiều so với History API cũ.
Thuộc tính thể hiện
Kế thừa thuộc tính từ giao diện cha, EventTarget.
activationRead only-
Trả về một đối tượng
NavigationActivationchứa thông tin về lần điều hướng xuyên tài liệu gần nhất, đã "kích hoạt" Document này. canGoBackRead only-
Trả về
truenếu có thể điều hướng ngược trong lịch sử điều hướng (tức làcurrentEntrykhông phải là mục đầu tiên trong danh sách mục lịch sử), vàfalsenếu không thể. canGoForwardRead only-
Trả về
truenếu có thể điều hướng tới trước trong lịch sử điều hướng (tức làcurrentEntrykhông phải là mục cuối cùng trong danh sách mục lịch sử), vàfalsenếu không thể. currentEntryRead only-
Trả về một đối tượng
NavigationHistoryEntryđại diện cho vị trí mà người dùng hiện đang được điều hướng tới ngay lúc này. transitionRead only-
Trả về một đối tượng
NavigationTransitionđại diện cho trạng thái của một điều hướng đang diễn ra, có thể dùng để theo dõi nó. Trả vềnullnếu hiện không có điều hướng nào đang diễn ra.
Phương thức thể hiện
Kế thừa phương thức từ giao diện cha, EventTarget.
back()-
Điều hướng lùi lại một mục trong lịch sử điều hướng.
entries()-
Trả về một mảng các đối tượng
NavigationHistoryEntryđại diện cho tất cả các mục lịch sử hiện có. forward()-
Điều hướng tiến tới một mục trong lịch sử điều hướng.
-
Điều hướng đến một URL cụ thể, cập nhật bất kỳ trạng thái nào được cung cấp trong danh sách mục lịch sử.
reload()-
Tải lại URL hiện tại, cập nhật bất kỳ trạng thái nào được cung cấp trong danh sách mục lịch sử.
traverseTo()-
Điều hướng đến một
NavigationHistoryEntrycụ thể được xác định bằngkey. updateCurrentEntry()-
Cập nhật trạng thái của
currentEntry; được dùng trong các trường hợp thay đổi trạng thái độc lập với một điều hướng hoặc tải lại.
Sự kiện
Kế thừa sự kiện từ giao diện cha, EventTarget.
currententrychange-
Phát ra khi
Navigation.currentEntryđã thay đổi. -
Phát ra khi bất kỳ loại điều hướng nào được khởi tạo, cho phép bạn chặn khi cần.
-
Phát ra khi một điều hướng thất bại.
-
Phát ra khi một điều hướng thành công đã hoàn tất.
Ví dụ
>Di chuyển tiến và lùi trong lịch sử
async function backHandler() {
if (navigation.canGoBack) {
await navigation.back().finished;
// Handle any required clean-up after
// navigation has finished
} else {
displayBanner("You are on the first page");
}
}
async function forwardHandler() {
if (navigation.canGoForward) {
await navigation.forward().finished;
// Handle any required clean-up after
// navigation has finished
} else {
displayBanner("You are on the last page");
}
}
Duyệt tới một mục lịch sử cụ thể
// On JS startup, get the key of the first loaded page
// so the user can always go back there.
const { key } = navigation.currentEntry;
backToHomeButton.onclick = () => navigation.traverseTo(key);
// Navigate away, but the button will always work.
await navigation.navigate("/another_url").finished;
Điều hướng và cập nhật trạng thái
navigation.navigate(url, { state: newState });
Hoặc
navigation.reload({ state: newState });
Hoặc nếu trạng thái độc lập với một điều hướng hoặc tải lại:
navigation.updateCurrentEntry({ state: newState });
Đặc tả kỹ thuật
| Specification |
|---|
| HTML> # navigation-interface> |