Navigation: traverseTo() method
Baseline 2026>
Newly available
Since 2026년 1월, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Navigation 인터페이스의 traverseTo() 메서드는 주어진 key 로 식별되는 NavigationHistoryEntry 로 이동합니다.
구문
traverseTo(key)
traverseTo(key, options)
파라미터
key-
이동할
NavigationHistoryEntry의key입니다. optionsOptional-
다음 속성들을 포함한 옵션 객체입니다.
infoOptional-
개발자가 정의한 정보를
navigate이벤트로 함께 전달하며, 이 값은NavigateEvent.info에서 사용할 수 있습니다. 어떤 데이터 타입이든 될 수 있습니다. 예를 들어, (왼쪽 스와이프, 오른쪽 스와이프, 홈으로 이동 등) 어떤 방식으로 이동했는지에 따라 새로 이동한 콘텐츠를 다른 애니메이션으로 표시하고 싶을 수 있습니다. 이때 어떤 애니메이션을 사용할지 나타내는 문자열을info로 전달할 수 있습니다.
반환 값
다음 속성을 가진 객체입니다.
committed-
표시되는 URL이 변경되고 새
NavigationHistoryEntry가 생성되면 이행(fulfilled)되는Promise입니다. finished-
intercept()핸들러가 반환한 모든 프로미스가 이행되면 이행(fulfilled)되는Promise입니다. 이는navigatesuccess이벤트가 발생할 때NavigationTransition.finished프로미스가 이행되는 것과 동일합니다.
이 두 프로미스 중 어느 것이든지 네비게이션 이동이 실패하면 동작하지 않습니다.
예외
InvalidStateErrorDOMException-
Navigation.currentEntry의NavigationHistoryEntry.index값이 -1인 경우(즉, 현재Document가 아직 활성 상태가 아님), 혹은 내비게이션 히스토리 목록에 지정한 key를 가진NavigationHistoryEntry가 없는 경우, 현재Document가 언로드(종료)되는 중인 경우에 발생합니다.
예제
>홈 버튼 설정하기
function initHomeBtn() {
// 사용자가 이 화면으로 돌아갈 수 있도록
// 처음 로드된 시점의 키를 가져옵니다.
const { key } = navigation.currentEntry;
backToHomeButton.onclick = () => {
navigation.traverseTo(key);
};
}
// 링크를 클릭하는 행위처럼 이동 이벤트를 방해하고,
// 단일 페이지로 교체됩니다.
navigation.addEventListener("navigate", (event) => {
event.intercept({
async handler() {
// 다른 화면으로 이동합니다.
// 하지만 "home" 버튼은 항상 동작합니다.
},
});
});
명세서
| Specification |
|---|
| HTML> # dom-navigation-traverseto-dev> |