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

Window : évènement pageshow

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

L'évènement pageshow de l'interface Window est émis lorsque le navigateur navigue vers un nouveau document.

Cela inclut :

  • Chargement initial de la page.
  • Navigation vers la page depuis une autre page dans la même fenêtre ou onglet.
  • Restauration d'une page gelée sur les systèmes d'exploitation mobiles.
  • Retour à la page en utilisant les boutons « précédent » ou « suivant » du navigateur (y compris lorsqu'elle est restaurée depuis le bfcache).
  • Ouverture d'une page dans un onglet en arrière-plan.
  • Prérendu d'une page, même avant qu'elle ne soit activée.

Attention : Malgré son nom, l'évènement pageshow ne se déclenche pas lorsque la page est réellement affichée à l'utilisateur·ice. Par exemple, elle peut être ouverte dans un onglet en arrière-plan ou pré-rendue. Si vous souhaitez réagir à l'affichage de la page à l'utilisateur·ice, utilisez les évènements suivants :

Note : Lors du chargement initial de la page, l'évènement pageshow se déclenche après l'évènement load.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènement.

js
addEventListener("pageshow", (event) => { })

onpageshow = (event) => { }

Type d'évènement

Un objet PageTransitionEvent. Hérite de Event.

Event PageTransitionEvent

Propriétés de l'évènement

PageTransitionEvent.persisted Lecture seule

Indique si le document est chargé depuis un cache.

Alias des gestionnaires d'évènements

En plus de l'interface Window, la propriété de gestionnaire d'évènement onpageshow est également disponible sur les cibles suivantes :

Exemples

Cet exemple configure des gestionnaires d'évènements pour les évènements listés dans le tableau events. Le gestionnaire, eventLogger(), enregistre le type d'évènement qui s'est produit dans la console, et inclut la valeur du drapeau persisted pour les évènements pageshow et pagehide.

JavaScript

js
const events = ["pagehide", "pageshow", "unload", "load"];

const eventLogger = (event) => {
  switch (event.type) {
    case "pagehide":
    case "pageshow": {
      let isPersisted = event.persisted ? "persisted" : "not persisted";
      console.log(`Évènement : ${event.type} - ${isPersisted}`);
      break;
    }
    default:
      console.log(`Évènement : ${event.type}`);
      break;
  }
};

events.forEach((eventName) => window.addEventListener(eventName, eventLogger));

HTML

html
<p>
  Ouvrez la console et observez la sortie lorsque vous naviguez vers et depuis
  cette page. Essayez de charger de nouvelles pages dans cet onglet, puis
  naviguez en avant et en arrière dans l'historique, en notant la sortie des
  événements dans le journal.
</p>

Résultat

Spécifications

Spécification
HTML
# event-pageshow

Compatibilité des navigateurs

Voir aussi