Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Navigation : méthode updateCurrentEntry()

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.

La méthode updateCurrentEntry() de l'interface Navigation met à jour le state de la currentEntry ; utilisée dans les cas où le changement d'état est indépendant d'une navigation ou d'un rechargement.

Syntaxe

js
updateCurrentEntry(options)

Paramètres

options

Un objet options contenant les propriétés suivantes :

state

L'information définie par le·la développeur·euse à stocker dans le NavigationHistoryEntry associé une fois la navigation terminée, récupérable avec getState(). Ça peut être de n'importe quel type de données. Vous pouvez, par exemple, souhaiter stocker le nombre de visites d'une page à des fins d'analyse, ou stocker les détails de l'état de l'interface utilisateur afin que la vue puisse être affichée exactement comme l'utilisateur·ice l'a laissée. Toutes les données stockées dans state doivent être structurées et clonables.

Valeur de retour

Aucune (undefined).

Exceptions

DataCloneError DOMException

Levée si le paramètre state contient des valeurs qui ne sont pas clonables selon l'algorithme de clonage structuré.

InvalidStateError DOMException

Levée si la valeur de Navigation.currentEntry est null, c'est-à-dire qu'il n'y a pas d'entrée d'historique actuelle. Cela peut se produire, par exemple, si la page actuelle est about:blank.

Exemples

Vous pouvez utiliser quelque chose comme ce qui suit pour mettre à jour l'état ouvert/fermé d'un élément <details> afin que l'état puisse être restauré lors du rechargement de la page ou du retour depuis un autre endroit.

js
detailsElem.addEventListener("toggle", () => {
  navigation.updateCurrentEntry({ state: { detailOpen: detailsElem.open } });
});

Spécifications

Spécification
HTML
# dom-navigation-updatecurrententry-dev

Compatibilité des navigateurs

Voir aussi