NavigationActivation
Baseline 2026>
Nouvellement disponible
Depuis janvier 2026, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
L'interface NavigationActivation de l'API Navigation représente une navigation inter-documents récente. Elle contient le type de navigation ainsi que les entrées d'historique des documents sortants et entrants.
Cet objet est accessible par les propriétés PageSwapEvent.activation et Navigation.activation. Notez que, dans chaque cas, le NavigationActivation représente une navigation différente :
Navigation.activationreprésente des informations sur la navigation vers la page actuelle.PageSwapEvent.activationreprésente des informations sur la navigation vers la page suivante.
Propriétés d'instance
entryLecture seule-
Contient un objet
NavigationHistoryEntryreprésentant l'entrée d'historique pour le document entrant (« to ») dans la navigation. Cela équivaut à la propriétéNavigation.currentEntryau moment où le document entrant a été activé. fromLecture seule-
Contient un objet
NavigationHistoryEntryreprésentant l'entrée d'historique pour le document sortant (« from ») dans la navigation. -
Contient une chaîne de caractères indiquant le type de navigation.
Exemples
window.addEventListener("pagereveal", async (e) => {
// Si l'entrée d'historique « from » n'existe pas, retourner
if (!navigation.activation.from) return;
// Ne s'exécute que si une transition de vue active existe
if (e.viewTransition) {
const depuisUrl = new URL(navigation.activation.from.url);
const urlActuelle = new URL(navigation.activation.entry.url);
// Passage de la page de profil à la page d'accueil
// ~> Définir les noms VT sur l'élément de liste pertinent
if (estPageProfil(depuisUrl) && estPageAccueil(urlActuelle)) {
const profil = extraireNomProfilDepuisUrl(depuisUrl);
// Définit les valeurs view-transition-name sur les éléments à animer
document.querySelector(`#${profil} span`).style.viewTransitionName =
"name";
document.querySelector(`#${profil} img`).style.viewTransitionName =
"avatar";
// Supprime les noms après que les instantanés ont été pris
// afin d'être prêt pour la navigation suivante
await e.viewTransition.ready;
document.querySelector(`#${profil} span`).style.viewTransitionName =
"none";
document.querySelector(`#${profil} img`).style.viewTransitionName =
"none";
}
// Passage à la page de profil
// ~> Définit les noms VT sur le titre principal et l'image
if (estPageProfil(urlActuelle)) {
// Définit les valeurs view-transition-name sur les éléments à animer
document.querySelector(`#detail main h1`).style.viewTransitionName =
"name";
document.querySelector(`#detail main img`).style.viewTransitionName =
"avatar";
// Supprime les noms après que les instantanés ont été pris
// afin d'être prêt pour la navigation suivante
await e.viewTransition.ready;
document.querySelector(`#detail main h1`).style.viewTransitionName =
"none";
document.querySelector(`#detail main img`).style.viewTransitionName =
"none";
}
}
});
Note : Voir la Liste des membres de l'équipe Chrome DevRel (angl.) pour la démonstration en direct dont ce code est tiré.
Spécifications
| Spécification |
|---|
| HTML> # navigationactivation> |