aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/windoweventhandlers/onpopstate/index.html
blob: ff23d12a7025abb1da7b4dcb54f70b49cd29f776 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
title: window.onpopstate
slug: Web/API/WindowEventHandlers/onpopstate
translation_of: Web/API/WindowEventHandlers/onpopstate
---
<p>{{ ApiRef() }}</p>

<p>{{ gecko_minversion_header("2") }}</p>

<h3 id="Résumé">Résumé</h3>

<p>Un gestionnaire d'évènement pour l'évènement <code>popstate</code> de la fenêtre.</p>

<p>L'évènement <code>popstate</code> est envoyé à la fenêtre à chaque fois que l'entrée actuelle de l'historique change avec 2 autres entrées du même document. Si l'entrée actuelle a été créée en appelant <code>history.pushState()</code> ou a été modifiée en appelant <code>history.replaceState()</code>, la propriété state de l'évènement <code>popstate</code> contient une copie de l'objet d'entrée de l'historique.</p>

<p>Sachez qu'appeler <code>history.pushState()</code> ou <code>history.replaceState()</code> ne déclenchera pas l'évènement <code>popstate</code>. Cet évènement n'est déclenché que par une action utilisateur telle que cliquer sur le bouton Retour (ou appeler <code>history.back()</code>, en JavaScript). L'évènement n'est déclenché que pour la navigation entre deux entrées du même document.</p>

<h3 id="Syntax">Syntaxe</h3>

<pre class="eval">window.onpopstate = <em>funcRef</em>;
</pre>

<ul>
 <li><code>funcRef</code> est une référence à une fonction.</li>
</ul>

<h3 id="Lévènement_popstate">L'évènement popstate</h3>

<p>Par exemple, une page à l'adresse <a href="http://example.com/example.html">http://example.com/example.html</a> exécutant le code suivant générera les alertes suivantes:</p>

<pre class="brush: js">window.onpopstate = function(event) {
  alert("adresse: " + document.location + ", état: " + JSON.stringify(event.state));
};
history.pushState({page: 1}, "titre 1", "?page=1");
history.pushState({page: 2}, "titre 2", "?page=2");
history.replaceState({page: 3}, "titre 3", "?page=3");
history.back(); // affiche "adresse: http://example.com/example.html?page=1, état: {"page":1}"
history.back(); // affiche "adresse: http://example.com/example.html, état: null
history.go(2);  // affiche "adresse: http://example.com/example.html?page=3, état: {"page":3}
</pre>

<p>Même si l'entrée originelle (de <a href="http://example.com/example.html">http://example.com/example.html</a>) n'a aucun objet d'état associé, l'évènement <code>popstate</code> est toujours déclenché lorsque l'entrée est activée après un deuxième appel à <code>history.back()</code>.</p>

<h3 id="Specification">Spécification</h3>

<ul>
 <li><a href="http://www.whatwg.org/specs/web-apps/current-work/#handler-window-onpopstate">HTML5 popstate event</a></li>
</ul>

<h3 id="Lire_également">Lire également</h3>

<ul>
 <li>{{ domxref("window.history") }}</li>
 <li><a href="/fr/docs/DOM/manipuler_lhistorique_du_navigateur">Manipuler l'historique du navigateur</a></li>
 <li><a href="/fr/docs/DOM/Manipulating_the_browser_history/Example">Exemple de navigation en Ajax</a></li>
</ul>