ããã²ã¼ã·ã§ã³ API
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.
ããã²ã¼ã·ã§ã³ API ã使ç¨ããã¨ããã©ã¦ã¶ã¼ã®ããã²ã¼ã·ã§ã³æä½ãéå§ãä»å
¥ã管çãããã¨ãã§ãã¾ããåæã«ãã¢ããªã±ã¼ã·ã§ã³ã®å±¥æ´é
ç®ã確èªãããã¨ãå¯è½ã§ããããã¯ãå±¥æ´ API ã window.location ã¨ãã£ã徿¥ã®ã¦ã§ããã©ãããã©ã¼ã æ©è½ã®å¾ç¶ã§ããããããã®æ¬ ç¹ãè§£æ¶ããã¨ã¨ãã«ãç¹ã«åä¸ãã¼ã¸ã¢ããªã±ã¼ã·ã§ã³ (SPA) ã®ãã¼ãºã«å¯¾å¿ãããã¨ãç®çã¨ãã¦ãã¾ãã
æ¦å¿µã¨ä½¿ãæ¹
SPA ã§ã¯ããã¼ã¸ãã³ãã¬ã¼ãã¯ä½¿ç¨ä¸ã«å¤æ´ããããã¦ã¼ã¶ã¼ãç°ãªããã¼ã¸ãæ©è½ã«ã¢ã¯ã»ã¹ããéã«ã³ã³ãã³ããåçã«æ¸ãæããããå¾åãããã¾ãããã®çµæããã©ã¦ã¶ã¼ã«ã¯1ã¤ã®ãã¼ã¸ããèªã¿è¾¼ã¾ããªããããé²è¦§å±¥æ´å ã®ç°ãªãå ´æãè¡ãæ¥ããã¨ãããã¦ã¼ã¶ã¼ãæå¾ ãã使ãåæãæãªããã¦ãã¾ãã¾ãããã®åé¡ã¯å±¥æ´ API ã«ãã£ã¦ããç¨åº¦è§£æ±ºå¯è½ã§ããããã㯠SPA ã®ãã¼ãºã«åããã¦è¨è¨ããããã®ã§ã¯ããã¾ãããããã²ã¼ã·ã§ã³ API ã¯ããã®ã®ã£ãããåãããã¨ãç®çã¨ãã¦ãã¾ãã
ãã® API ã«ã¯ãWindow.navigation ããããã£ãä»ãã¦ã¢ã¯ã»ã¹ãã¾ãããã®ããããã£ã¯ãã°ãã¼ãã«ãª Navigation ãªãã¸ã§ã¯ãã¸ã®åç
§ãè¿ãã¾ããããããã® window ãªãã¸ã§ã¯ãã«ã¯ããããã対å¿ãã navigation ã¤ã³ã¹ã¿ã³ã¹ãããã¾ãã
ããã²ã¼ã·ã§ã³ã®å¦ç
navigation ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯ããã¤ãã®é¢é£ä»ããããã¤ãã³ããããã¾ãããä¸ã§ãç¹ã«æ³¨ç®ãã¹ã㯠navigate ã¤ãã³ãã§ããããã¯ããããã種é¡ã®ããã²ã¼ã·ã§ã³ãéå§ãããéã«çºçãã¾ããã¤ã¾ãããã¹ã¦ã®ãã¼ã¸ããã²ã¼ã·ã§ã³ãä¸å
çã«å¶å¾¡ã§ãããããSPA ãã¬ã¼ã ã¯ã¼ã¯ã«ãããã«ã¼ãã£ã³ã°æ©è½ã«æé©ã§ããï¼History API ã®å ´åã¨ã¯ç°ãªããå±¥æ´ API ã§ã¯ãã¹ã¦ã®ããã²ã¼ã·ã§ã³ãæ¤åºãã¦å¯¾å¿ãããã¨ãé£ããå ´åãããã¾ããï¼ navigate ã¤ãã³ããã³ãã©ã¼ã«ã¯ãNavigateEvent ãªãã¸ã§ã¯ããæ¸¡ããã¾ãããã®ãªãã¸ã§ã¯ãã«ã¯ãããã²ã¼ã·ã§ã³ã®åºåå
ã種é¡ãPOST ãã©ã¼ã ãã¼ã¿ããã¦ã³ãã¼ããªã¯ã¨ã¹ããå«ã¾ãã¦ãããã©ãããªã©ãè©³ç´°ãªæ
å ±ãå«ã¾ãã¦ãã¾ãã
NavigateEvent ãªãã¸ã§ã¯ãã«ã¯ã2 ã¤ã¡ã½ãããæä¾ããã¦ãã¾ãã
intercept()ã¯ãããã²ã¼ã·ã§ã³ã«å¯¾ããç¬èªã®åä½ãæå®ãããã¨ãã§ãã以ä¸ã®å¼æ°ãåããã¨ãã§ãã¾ãã- ã³ã¼ã«ããã¯ãã³ãã©ã¼é¢æ°ãããã使ç¨ããã¨ãããã²ã¼ã·ã§ã³ãå®è¡ãããã¨ãã¨ãããã²ã¼ã·ã§ã³ãå®è¡ãããç´åã®ä¸¡æ¹ã§ãã©ã®ãããªåä½ãè¡ãããæå®ã§ãã¾ããä¾ãã°ãç§»åå ã® URL ã®ãã¹ã«åºã¥ãã¦ãé¢é£ããæ°ããã³ã³ãã³ãã UI ã«èªã¿è¾¼ãã ããURL ãã¢ã¯ã»ã¹å¶éã®ãããã¼ã¸ãæãã¦ããããã¤ã¦ã¼ã¶ã¼ããµã¤ã³ã¤ã³ãã¦ããªãå ´åã«ããã©ã¦ã¶ã¼ããµã¤ã³ã¤ã³ãã¼ã¸ã«ãªãã¤ã¬ã¯ãããããããã¨ãã§ãã¾ãã
- ããã²ã¼ã·ã§ã³å¾ããã©ã¦ã¶ã¼ã®ããã©ã«ãã®ãã©ã¼ã«ã¹ããã³ã¹ã¯ãã¼ã«åä½ãæå¹ã¾ãã¯ç¡å¹ã«ãããã¨ãã§ããããããã£ã§ãã
scroll()ã¯ããã©ã¦ã¶ã¼ã®ã¹ã¯ãã¼ã«åä½ï¼URL å ã®ãã©ã°ã¡ã³ãèå¥åã¸ã®ç§»åãªã©ï¼ãæåã§éå§ãããã¨ãã§ãã¾ãããã©ã¦ã¶ã¼ãèªåçã«å¦çããã®ãå¾ ã¤ã®ã§ã¯ãªããã³ã¼ãã®é½åä¸é©åãªå ´åã«è¡ããã¨ãã§ãã¾ãã
ããã²ã¼ã·ã§ã³ãéå§ãããintercept() ã®ãã³ãã©ã¼ãå¼ã³åºãããã¨ãNavigationTransition ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã使ããã¾ãï¼Navigation.transition çµç±ã§ã¢ã¯ã»ã¹å¯è½ï¼ãããã使ç¨ãã¦ãé²è¡ä¸ã®ããã²ã¼ã·ã§ã³ã®ããã»ã¹ã追跡ãããã¨ãã§ãã¾ãã
ã¡ã¢: ãã®æèã«ããã "transition" ã¨ã¯ãããå±¥æ´é ç®ã¨å¥ã®å±¥æ´é ç®ã¨ã®éã®é·ç§»ãæãã¾ããCSS ã®ãã©ã³ã¸ã·ã§ã³ã¨ã¯é¢é£ããã¾ããã
ã¡ã¢:
preventDefault() ãå¼ã³åºããã¨ã§ããã»ã¨ãã©ã®ç¨®é¡ã®ããã²ã¼ã·ã§ã³ã«ããã¦ãããã²ã¼ã·ã§ã³ãå®å
¨ã«åæ¢ããããã¨ãã§ãã¾ãããã ãããã©ãã¼ã¹ããã²ã¼ã·ã§ã³ã®ä¸æ¢æ©è½ã¯ã¾ã å®è£
ããã¦ãã¾ããã
intercept() ãã³ãã©ã¼é¢æ°ã«ãã£ã¦è¿ããããããã¹ãå±¥è¡ãããã¨ãNavigation ãªãã¸ã§ã¯ãã® navigatesuccess ã¤ãã³ããçºçããããã²ã¼ã·ã§ã³ãæ£å¸¸ã«å®äºããå¾ã«ã¯ãªã¼ã³ã¢ããã³ã¼ããå®è¡ã§ããããã«ãªãã¾ãããããã¹ãæå¦ãããå ´åãã¤ã¾ãããã²ã¼ã·ã§ã³ã失æããå ´åã¯ã代ããã« navigateerror ãçºçãã失ææã®å¦çãé©åã«è¡ããã¨ãã§ãã¾ããã¾ããããã²ã¼ã·ã§ã³ã¡ã½ããï¼Navigation.navigate() ãªã©ï¼ã®è¿å¤ã«ã¯ finished ããããã£ããããããã¯åè¿°ã®ã¤ãã³ããçºçããã®ã¨åæã«å±¥è¡ã¾ãã¯æå¦ããããããæåããã³å¤±æã®ã±ã¼ã¹ãå¦çããããã®å¥ã®ææ®µã¨ãªãã¾ãã
ã¡ã¢:
ããã²ã¼ã·ã§ã³ API ãå©ç¨ã§ããããã«ãªãåã¯ãåæ§ã®å¦çãè¡ãã«ã¯ããªã³ã¯ã®ãã¹ã¦ã®ã¯ãªãã¯ã¤ãã³ããç£è¦ããe.preventDefault() ãå®è¡ããé©å㪠History.pushState() å¼ã³åºããè¡ããæ°ãã URL ã«åºã¥ãã¦ãã¼ã¸è¡¨ç¤ºãè¨å®ããå¿
è¦ãããã¾ãããã¾ãããã®æ¹æ³ã§ã¯ãã¹ã¦ã®ããã²ã¼ã·ã§ã³ã«å¯¾å¿ã§ããããã§ã¯ãªããã¦ã¼ã¶ã¼ããªã³ã¯ãã¯ãªãã¯ããå ´åã®ã¿å¯¾å¿å¯è½ã§ããã
ããã°ã©ã ã«ããããã²ã¼ã·ã§ã³å±¥æ´ã®æ´æ°ã¨ç§»å
ã¦ã¼ã¶ã¼ãã¢ããªã±ã¼ã·ã§ã³å
ãç§»åããéãæ°ããå ´æã¸ç§»åãããã³ã«ãããã²ã¼ã·ã§ã³å±¥æ´ã®é
ç®ã使ããã¾ããããããã®å±¥æ´é
ç®ã¯ãåºæã® NavigationHistoryEntry ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã¨ãã¦è¡¨ããã¾ãããããã¯ãé
ç®ã®ä¸æã®ãã¼ãURLãç¶æ
æ
å ±ãªã©ã®ããã¤ãã®ããããã£ãå«ãã§ãã¾ããNavigation.currentEntry ã使ç¨ããã¨ãã¦ã¼ã¶ã¼ãç¾å¨è¡¨ç¤ºãã¦ããé
ç®ãåå¾ã§ããNavigation.entries() ã使ç¨ããã¨ãæ¢åã®ãã¹ã¦ã®å±¥æ´é
ç®ã®ä¸è¦§ãåå¾ã§ãã¾ããããããã® NavigationHistoryEntry ãªãã¸ã§ã¯ãã«ã¯ãé
ç®ããã©ã¦ã¶ã¼ã®å±¥æ´ããåé¤ãããéã«çºçãã dispose ã¤ãã³ããããã¾ããä¾ãã°ãã¦ã¼ã¶ã¼ã 3 åæ»ãæä½ãè¡ãããã®å¾å¥ã®å ´æã¸é²ãã¨ããã® 3 ã¤ã®å±¥æ´é
ç®ã¯ç ´æ£ããã¾ãã
ã¡ã¢:
ããã²ã¼ã·ã§ã³ API ã¯ãç¾å¨ã®ãã¼ã¸ã¨åããªãªã¸ã³ãæã¤ãç¾å¨ã®é²è¦§ã³ã³ããã¹ãå
ã§çæãããå±¥æ´é
ç®ã®ã¿ãå
¬éãã¾ãï¼ä¾ãã°ãåã込㿠<iframe> å
ã®ããã²ã¼ã·ã§ã³ãããªãªã¸ã³ãè¶ããããã²ã¼ã·ã§ã³ã¯å¯¾è±¡å¤ã§ãï¼ãããã«ãããã¢ããªå°ç¨ã®æ£ç¢ºãªéå»ã®å±¥æ´é
ç®ä¸è¦§ãæä¾ããã¾ãããã®æ¹æ³ã«ãããå±¥æ´ã®æ¢ç´¢ã¯ã以åã®å±¥æ´ API ã«ããæ¹æ³ã«æ¯ã¹ã¦ãã¯ããã«å®å®ããå¦çãå¯è½ã«ãªãã¾ãã
Navigation ãªãã¸ã§ã¯ãã«ã¯ãããã²ã¼ã·ã§ã³å±¥æ´ã®æ´æ°ãç§»åã«å¿
è¦ãªãã¹ã¦ã®ã¡ã½ãããå«ã¾ãã¦ãã¾ãã
-
æ°ãã URL ã«ç§»åããæ°ããããã²ã¼ã·ã§ã³å±¥æ´é ç®ã使ãã¾ãã
reload()-
ç¾å¨ã®ããã²ã¼ã·ã§ã³å±¥æ´é ç®ãåèªã¿è¾¼ã¿ãã¾ãã
back()-
å¯è½ã§ããã°ãååã®ããã²ã¼ã·ã§ã³å±¥æ´é ç®ã«ç§»åãã¾ãã
forward()-
å¯è½ã§ããã°ã次ã®ããã²ã¼ã·ã§ã³å±¥æ´é ç®ã«ç§»åãã¾ãã
traverseTo()-
ãã¼å¤ã«ãã£ã¦èå¥ãããç¹å®ã®ããã²ã¼ã·ã§ã³å±¥æ´é ç®ã«ç§»åãã¾ãããã®ãã¼å¤ã¯ã該å½ããé ç®ã®
NavigationHistoryEntry.keyããããã£ããåå¾ããã¾ãã
以ä¸ã®åã¡ã½ããã¯ã2 ã¤ã®ãããã¹ ({ committed, finished }) ãå«ããªãã¸ã§ã¯ããè¿ãã¾ããããã«ãããå¼ã³åºãå
颿°ã¯ã以ä¸ã®ãããããå®äºããã¾ã§ã次ã®ã¢ã¯ã·ã§ã³ãå®è¡ããã®ãå¾
ã¤ãã¨ãã§ãã¾ãã
committedãå±¥è¡ãããã®ã¯ã表示ããã¦ãã URL ã夿´ãããæ°ããNavigationHistoryEntryã使ããããã¨ã表ãã¾ããfinishedãå±¥è¡ãããã®ã¯ãintercept()ãã³ãã©ã¼ã«ãã£ã¦è¿ããããã¹ã¦ã®ãããã¹ãå±¥è¡ããããã¨ã表ãã¾ããããã¯ãåè¿°ã®éããNavigationTransition.finishedãããã¹ããnavigatesuccessã¤ãã³ãã®çºçã®éã«å±¥è¡ããããã¨ã¨åçã§ãã- ä¸è¨ã®ã©ã¡ããã®ãããã¹ãæå¦ãããå ´åãä½ããã®çç±ã§ããã²ã¼ã·ã§ã³ã失æããã¨ãããã¨ã§ãã
ç¶æ
ããã²ã¼ã·ã§ã³ API ã使ç¨ããã¨ãããããã®å±¥æ´é
ç®ã«ç¶æ
ãä¿åãããã¨ãã§ãã¾ããããã¯éçºè
ãå®ç¾©ããæ
å ±ã§ãããèªç±ã«è¨å®å¯è½ã§ããä¾ãã°ããã¥ã¼ãé²è¦§ãããåæ°ãè¨é²ãã visitCount ããããã£ããUI ã®ç¶æ
ã«é¢é£ããè¤æ°ã®ããããã£ãå«ããªãã¸ã§ã¯ããä¿åãããã¨ã§ãã¦ã¼ã¶ã¼ããã®ãã¥ã¼ã«æ»ã£ãéã«ç¶æ
ã復å
ã§ããããã«ãããã¨ãã§ãã¾ãã
NavigationHistoryEntry ã®ç¶æ
ãåå¾ããã«ã¯ããã® getState() ã¡ã½ãããå¼ã³åºãã¾ããåæç¶æ
ã§ã¯ undefined ã§ãããé
ç®ã«ç¶æ
æ
å ±ãè¨å®ãããã¨ãååè¨å®ãããç¶æ
æ
å ±ãè¿ããã¾ãã
ç¶æ
ã®è¨å®ã¯ãããå°ãè¤éã§ããç¶æ
ã®å¤ãåå¾ãã¦ç´æ¥æ´æ°ãããã¨ã¯ã§ãã¾ãããé
ç®ã«æ ¼ç´ããã¦ããã³ãã¼ã¯å¤æ´ãããªãããã§ãããã®ä»£ããã«ãnavigate() ã¾ã㯠reload() ãå®è¡ããéã«æ´æ°ãã¾ããããããã«ã¯ãªãã·ã§ã³ã§ options ãªãã¸ã§ã¯ãã®å¼æ°ã渡ããã¨ãã§ãããã®ä¸ã« state ããããã£ãè¨è¼ãããã¨ã§ãå±¥æ´é
ç®ã«è¨å®ããæ°ããç¶æ
ãæå®ã§ãã¾ãããããã®ããã²ã¼ã·ã§ã³ãå®è¡ãããã¨ãç¶æ
ã®å¤æ´ãèªåçã«é©ç¨ããã¾ãã
ãã ããå ´åã«ãã£ã¦ã¯ãç¶æ
ã®å¤åãããã²ã¼ã·ã§ã³ãåèªã¿è¾¼ã¿ã¨ã¯ç¡é¢ä¿ã«ãªããã¨ãããã¾ããä¾ãã°ããã¼ã¸ã«å±éã»æãããã¿å¯è½ãª <details> è¦ç´ ãå«ã¾ãã¦ããå ´åãã¦ã¼ã¶ã¼ããã¼ã¸ã«æ»ã£ã¦ããã¨ãããã©ã¦ã¶ã¼ãåèµ·åããã¨ãã«ç¶æ
ã復å
ã§ãããããå±éï¼æãããã¿ç¶æ
ãå±¥æ´é
ç®ã«ä¿åãã¦ããããå ´åãããã¾ãããã®ãããªã±ã¼ã¹ã¯ãNavigation.updateCurrentEntry() ã使ç¨ãã¦å¦çãã¾ããç¾å¨ã®é
ç®ã®å¤æ´ãå®äºããã¨ãcurrententrychange ã¤ãã³ããçºçãã¾ãã
å¶é
ããã²ã¼ã·ã§ã³ API ã«ã¯ãããã¤ãã®èªèããã¦ããå¶éãããã¾ãã
- ç¾å¨ã®ä»æ§ã§ã¯ããã¼ã¸ã®ååèªã¿è¾¼ã¿æã«
navigateã¤ãã³ãã¯çºçãã¾ããããµã¼ãã¼ãµã¤ãã¬ã³ããªã³ã° (SSR) ãæ¡ç¨ãã¦ãããµã¤ãã§ããã°ãããã§ãåé¡ãªãããããã¾ããããµã¼ãã¼ãæ£ããåæç¶æ ãè¿ããã¨ã§ãã¦ã¼ã¶ã¼ã«ã³ã³ãã³ããå±ããæãéãæ¹æ³ã¨ãªãããã§ããããããã¯ã©ã¤ã¢ã³ããµã¤ãã®ã³ã¼ããå©ç¨ãã¦ãã¼ã¸ãçæãããµã¤ãã§ã¯ããã¼ã¸ãåæåããããã®è¿½å ã®é¢æ°ãå¿ è¦ã«ãªãå ´åãããã¾ãã - ããã²ã¼ã·ã§ã³ API ã¯ãåä¸ã®ãã¬ã¼ã å
ï¼æä¸ä½ã®ãã¼ã¸ãã¾ãã¯ç¹å®ã®
<iframe>ï¼ã§ã®ã¿åä½ãã¾ããããã«ã¯ããã¤ãã®è峿·±ãæå³åããããã仿§æ¸ã§ããã«è©³ãã説æããã¦ãã¾ãããå®éã«ã¯ãéçºè ã®æ··ä¹±ã軽æ¸ãããã¨ã«ãªãã¾ãã以åã®å±¥æ´ API ã«ã¯ããã¬ã¼ã ã®å¯¾å¿ãªã©ãæ··ä¹±ãæããããããã¤ãã®ç¹æ®ãªå ´åãããã¾ããããããã²ã¼ã·ã§ã³ API ã§ã¯ããããæåããé©åã«å¦çãã¦ãã¾ãã - ç¾å¨ãããã²ã¼ã·ã§ã³ API ã使ç¨ãã¦ãå±¥æ´ãªã¹ããããã°ã©ã ã§å¤æ´ãããä¸¦ã¹æ¿ããããããã¨ã¯ã§ãã¾ãããã¦ã¼ã¶ã¼ãæ å ±ãå ¥åããããæ±ãããã䏿çãªã¢ã¼ãã«ç»é¢ã«é·ç§»ãããã®å¾ã§å ã® URL ã«æ»ããããªå ´åã¯ã䏿çãªç¶æ ããå¯ã売ãã¨ããããããã¾ããããã®å ´åãã¦ã¼ã¶ã¼ãé²ããã¿ã³ãæ¼ãã¦ãã®ã¢ã¼ãã«ç»é¢ãå度éãã¦ãã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ããã¼ãä¹±ããã®ãé²ãããã«ããã®ä¸æçãªã¢ã¼ãã«ç»é¢ã®ããã²ã¼ã·ã§ã³é ç®ãåé¤ãã¦ããå¿ è¦ãããã¾ãã
ã¤ã³ã¿ã¼ãã§ã¤ã¹
-
navigateã¤ãã³ãã®ã¤ãã³ããªãã¸ã§ã¯ãã§ãããã®ã¤ãã³ãã¯ããããã種é¡ã®ããã²ã¼ã·ã§ã³ãéå§ãããéã«çºçãã¾ãããã®ãªãã¸ã§ã¯ããæä¾ããæ å ±ã«ããããã®ããã²ã¼ã·ã§ã³ã«é¢ããæ å ±ã«ã¢ã¯ã»ã¹ã§ãã¾ããç¹ã«æ³¨ç®ãã¹ãã¯intercept()ã§ãããããã使ç¨ãããã¨ã§ãããã²ã¼ã·ã§ã³ãéå§ãããéã®åä½ãå¶å¾¡ãããã¨ãã§ãã¾ãã -
ç¾å¨ã®
windowã«å¯¾ãããã¹ã¦ã®ããã²ã¼ã·ã§ã³æä½ããä¸å çã«å¶å¾¡ãããã¨ãã§ãã¾ããããã«ã¯ãããã°ã©ã ã«ããããã²ã¼ã·ã§ã³ã®éå§ãããã²ã¼ã·ã§ã³å±¥æ´é ç®ã®ç¢ºèªãããã³ããã²ã¼ã·ã§ã³ãç¾ããã¨ãã®ç®¡çãªã©ãå«ã¾ãã¾ãã -
ç´è¿ã®ææ¸éã®ããã²ã¼ã·ã§ã³ã表ãã¾ããããã«ã¯ãããã²ã¼ã·ã§ã³ã®ç¨®é¡ãããã³ç¾å¨ã¨åºåå ã®ææ¸å±¥æ´é ç®ãå«ã¾ãã¾ãã
-
currententrychangeã¤ãã³ãç¨ã®ã¤ãã³ããªãã¸ã§ã¯ãã§ãããã®ã¤ãã³ãã¯ãNavigation.currentEntryã夿´ãããéã«çºçãã¾ãããã®ãªãã¸ã§ã¯ãã使ç¨ããã¨ãããã²ã¼ã·ã§ã³ã®åããç§»åå ã®ååã®å±¥æ´é ç®ã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã -
ç¾å¨ã®ããã²ã¼ã·ã§ã³ã§ç§»åå ã®åºåå ã表ãã¾ãã
-
åä¸ã®ããã²ã¼ã·ã§ã³å±¥æ´é ç®ã表ãã¾ãã
-
unsupported templ: domxref(ãnavigateevent.ã¡ã½ããå¼ã³åºãã®precommitHandlerã³ã¼ã«ããã¯ã«æ¸¡ãã¨ãããã²ã¼ã·ã§ã³ã®äºåã³ããããã³ãã©ã¼ã®ãªãã¤ã¬ã¯ãåä½ãå®ç¾©ãã¾ãã -
ç¾å¨é²è¡ä¸ã®ããã²ã¼ã·ã§ã³ã表ãã¾ãã
ä»ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¸ã®æ¡å¼µ
-
ç¾å¨ã®
windowã«é¢é£ä»ããããNavigationãªãã¸ã§ã¯ããè¿ãã¾ãããããããã²ã¼ã·ã§ã³ API ã®ã¨ã³ããªã¼ãã¤ã³ãã§ãã
ä¾
ã¡ã¢: ããã²ã¼ã·ã§ã³ API ã®ã©ã¤ãã㢠(ã½ã¼ã¹ã表示) ã確èªãã¦ãã ããã
intercept() ã使ç¨ãã¦ããã²ã¼ã·ã§ã³ãå¦ç
navigation.addEventListener("navigate", (event) => {
// ãªãªã¸ã³ãã¾ããã ããã²ã¼ã·ã§ã³ãªã©ãä¸é¨ã®ããã²ã¼ã·ã§ã³ã¯ä»å
¥ã§ããªã
// å¦çããæ©æã«è¿ããã¨ã§ããã©ã¦ã¶ã¼ãé常éãå¦çãã
if (!event.canIntercept) {
return;
}
// ãã©ã°ã¡ã³ãããã²ã¼ã·ã§ã³ããã¦ã³ãã¼ãã«ä»å
¥ãã¹ãã§ã¯ãªã
if (event.hashChange || event.downloadRequest !== null) {
return;
}
const url = new URL(event.destination.url);
if (url.pathname.startsWith("/articles/")) {
event.intercept({
async handler() {
// URL ã¯ãã§ã«å¤æ´ããã¦ããã®ã§ãæ°ããã³ã³ãã³ããåå¾ãã¦ããéã¯ã
// èªã¿è¾¼ã¿ä¸ã表ãã¹ããã¼ããã¼ã¸ãªã©ã®ãã¬ã¼ã¹ãã«ãã¼ã表示ãã
renderArticlePagePlaceholder();
// æ°ããã³ã³ãã³ããåå¾ããæºåãã§ã次第表示ããã
const articleContent = await getArticleContent(url.pathname);
renderArticlePage(articleContent);
},
});
}
});
scroll() ã使ç¨ããã¹ã¯ãã¼ã«ã®æ±ã
ãã®ããã²ã¼ã·ã§ã³ã®ä»å
¥ã®ä¾ã§ã¯ãhandler() 颿°ã¯ã¾ãè¨äºã³ã³ãã³ããåå¾ãã¦è¡¨ç¤ºãã¾ããããã®å¾ãè£å©ã³ã³ãã³ããåå¾ãã¦è¡¨ç¤ºãã¾ããè£å©ã³ã³ãã³ãã表示ãããã¾ã§å¾
ã¤ã®ã§ã¯ãªããã¡ã¤ã³ã®è¨äºã³ã³ãã³ããå©ç¨ã§ããæ¬¡ç¬¬ããã¼ã¸ãã¹ã¯ãã¼ã«ãã¦ã¦ã¼ã¶ã¼ãæä½ã§ããããã«ããã®ãæå³ãããã¾ãããã®ç®çã§ã2 ã¤ã®å¦çã®éã« scroll() ã®å¼ã³åºãã追å ãã¾ããã
navigation.addEventListener("navigate", (event) => {
// ä»å
¥ããªããã®ã«ã¤ãã¦ã¯æ©æã«è¿ã
if (
!event.canIntercept ||
event.hashChange ||
event.downloadRequest !== null
) {
return;
}
const url = new URL(event.destination.url);
if (url.pathname.startsWith("/articles/")) {
event.intercept({
async handler() {
const articleContent = await getArticleContent(url.pathname);
renderArticlePage(articleContent);
event.scroll();
const secondaryContent = await getSecondaryContent(url.pathname);
addSecondaryContent(secondaryContent);
},
});
}
});
ç¹å®ã®å±¥æ´é ç®ãèµ°æ»
// JavaScript ã®èµ·åæã«ãã¾ãèªã¿è¾¼ã¾ãããã¼ã¸ã® ID ãåå¾ãã
// ã¦ã¼ã¶ã¼ã常ã«ãã®ãã¼ã¸ã«æ»ããããã«ãã
const { key } = navigation.currentEntry;
backToHomeButton.onclick = () => navigation.traverseTo(key);
// ä»ã®ãã¼ã¸ã«ç§»åãã¦ãããã®ãã¿ã³ã¯å¸¸ã«åä½ãã
await navigation.navigate("/another_url").finished;
ç¶æ ãæ´æ°
navigation.navigate(url, { state: newState });
ã¾ãã¯
navigation.reload({ state: newState });
ãããã¯ããã®ç¶æ ãããã²ã¼ã·ã§ã³ãåèªã¿è¾¼ã¿ã¨ã¯ç¡é¢ä¿ã§ããå ´å
navigation.updateCurrentEntry({ state: newState });
仿§æ¸
| Specification |
|---|
| HTML > # navigation-api > |