recursal/MDN huggingface dataset:
Window.sessionStorage
=====================

La propriété `sessionStorage` permet d'utiliser un objet `Storage` valable pour la session de navigation en cours et pour les pages du même domaine que la page actuelle. L'objet global `sessionStorage` est similaire à `Window.localStorage`, à la différence que les données enregistrées dans `sessionStorage` ont une durée vie limitée et expirent à la fin de la session de navigation actuelle. Une session de navigation dure aussi longtemps que le navigateur est ouvert et s'étend sur plusieurs chargements, rechargements et restaurations de pages. En revanche, une session de navigation n'est valable que pour le contexte de navigation actuel, c'est-à-dire que le fait d'**ouvrir une page dans un nouvel onglet ou dans une nouvelle fenêtre provoquera l'initialisation d'une nouvelle session de navigation**, ce qui diffère du comportement des sessions utilisant des cookies.

Il est à noter que les données stockées dans sessionStorage ou localStorage sont **spécifiques au protocole de la page.**

Syntaxe
-------


```js
// Enregistrer des données dans sessionStorage
sessionStorage.setItem("clé", "valeur");

// Récupérer des données depuis sessionStorage
var data = sessionStorage.getItem("clé");

// Supprimer des données de sessionStorage
sessionStorage.removeItem("clé");

// Supprimer toutes les données de sessionStorage
sessionStorage.clear();
```

### Valeur

Un objet `Storage`.

Exemple
-------

L'exemple de code suivant accède à l'objet de stockage de session associé au domaine actuel et y ajoute une donnée à l'aide de `Storage.setItem()`.


```js
sessionStorage.setItem("myCat", "Tom");
```


L'exemple suivant sauvegarde automatiquement le contenu d'un champ textuel. Si la page est accidentellement rafraîchie, le contenu du champ est restauré de sorte qu'aucune saisie n'est perdue.


```js
// Récupération du champ à enregistrer
var champ = document.getElementById("champ");

// Vérification de l'existence d'une donnée enregistrée auparavant
// (ce ne sera le cas que si la page a été rafraîchie)
if (sessionStorage.getItem("autosave")) {
  // Restauration du contenu du champ
  champ.value = sessionStorage.getItem("autosave");
}

// Écoute des changements de valeur du champ
champ.addEventListener("change", function () {
  // Enregistrement de la saisie utilisateur dans le stockage de session
  sessionStorage.setItem("autosave", champ.value);
});
```


**Note :** Veuillez vous référer à l'article Utilisation de l'API Web Storage pour des exemples plus complets.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-sessionstorage-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utilisation de l'API Web Storage
* `Window.localStorage`
popstate
========

L'événement `popstate` est exécuté lorsque l'entrée active de l'historique change. Si l'entrée active de l'historique en cours d'activation a été créé par un appel à `history.pushState()` ou a été affectée par un appel à `history.replaceState()`, la propriété `state` de l'événement `popstate` contient une copie de l'objet `state` de l'entrée d'historique.

Notez qu'un appel à `history.pushState()` ou `history.replaceState()` n'exécutera pas l'événement `popstate`. L'événement `popstate` est uniquement exécuté en réalisant une action dans le navigateur telle que cliquer sur le bouton de retour (ou appeler `history.back()` en JavaScript).

Les navigateurs ont tendance à gérer l'événement `popstate` différemment lors du chargement de la page. Chrome (avant la v34) et Safari émettent toujours un événement `popstate` lors du chargement de la page, contrairement à Firefox.

Informations générales
----------------------

Specification

HTML5

Interface

PopStateEvent

Bubbles

Yes

Cancelable

No

Target

defaultView

Action par défaut

None

Propriétés
----------

| Property | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | The browsing context (`window`). |
| `type` Lecture seule  | `DOMString` | The type of event. |
| `bubbles` Lecture seule  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Lecture seule  | `Boolean` | Whether the event is cancellable or not. |
| `state` Lecture seule  | *any* | The current history entry's state object (if any). |

Exemple
-------

Une page `http://example.com/example.html` exécutant le code suivant génèrera un journal comme spécifié :


```js
window.onpopstate = function (event) {
  console.log(
    "location: " +
      document.location +
      ", state: " +
      JSON.stringify(event.state),
  );
};
history.pushState({ page: 1 }, "title 1", "?page=1");
history.pushState({ page: 2 }, "title 2", "?page=2");
history.replaceState({ page: 3 }, "title 3", "?page=3");
history.back(); // Logs "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // Logs "location: http://example.com/example.html, state: null
history.go(2); // Logs "location: http://example.com/example.html?page=3, state: {"page":3}
```


Notez que même si l'entrée d'historique originelle (pour `http://example.com/example.html`) n'a pas d'objet state associé, un événement `popstate` est tout de même exécuté lorsque nous activons cette entrée au second appel à `history.back()`.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # event-popstate |
| HTML Standard # handler-window-onpopstate |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Manipulation de l'historique du navigateur (l'API History)
* Window : événement `hashchange`
Window.scrollY
==============

La propriété **`scrollY`** de l'objet `Window` est une propriété en lecture seule. Elle retourne le nombre de pixels la page actuellement défilés verticalement. Dans les navigateurs modernes, cette valeur est précise au sous-pixel près. Ainsi, la valeur retournée n'est pas forcement un entier.

Syntaxe
-------


```js
var y = window.scrollY;
```


* `y` est le nombre de pixels verticaux défilés.
Exemple
-------


```js
// make sure and go down to the second page
if (window.scrollY) {
  window.scroll(0, 0); // reset the scroll position to the top left of the document.
}

window.scrollByPages(1);
```

Notes
-----

Utilisez cette propriété pour être sûre que le document n'as pas été défilé verticalement si vous utilisez les fonctions de défilement tels que `window.scrollBy`, `window.scrollByLines`, ou `window.scrollByPages`.

La propriété `pageYOffset` est un alias de la propriété `scrollY`:


```js
window.pageYOffset == window.scrollY; // toujours vrai
```


Pour une compatibilité multi-navigateur, utilisez `window.pageYOffset` à la place de `window.scrollY`. **En outre**, les anciennes versions d'Internet Explorer (< 9) ne supportent pas non plus la propriété et doit-être utilisé à l'aide d'autres propriétés qui ne sont pas standards. Un exemple entièrement compatible :


```js
var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";

var x = supportPageOffset
  ? window.pageXOffset
  : isCSS1Compat
    ? document.documentElement.scrollLeft
    : document.body.scrollLeft;
var y = supportPageOffset
  ? window.pageYOffset
  : isCSS1Compat
    ? document.documentElement.scrollTop
    : document.body.scrollTop;
```

Spécifications
--------------

| Specification |
| --- |
| CSSOM View Module # dom-window-scrolly |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `window.scrollX` (en-US)
Window.parent
=============

La propriété **`Window.parent`** est une référence au parent de la fenêtre ou du cadre embarqué (*subframe*).

Si une fenêtre n'a pas de parent, la propriété `parent` sera une référence à elle-même.

Lorsqu'une fenêtre est chargée dans un élément `<iframe>`, `<object>`, ou `<frame>`, son parent correspond à la fenêtre de l'élément qui embarque la fenêtre.

Valeur
------

Un objet `Window` ou `<iframe>`.

Exemples
--------


```js
if (window.parent != window.top) {
  // Nous sommes à plus d'un niveau de profondeur
}
```

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-parent-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `window.frameElement` renvoie l'élément spécifique (par exemple `<iframe>`) dans lequel `window` est embarqué.
* `window.top` renvoie une référence à la fenêtre de plus haut niveau.
Window.scrollbars
=================

La propriété **`Window.scrollbars`** renvoie l'objet `scrollbars`, dont la visibilité peut être vérifié.

Syntaxe
-------


```js
objRef = window.scrollbars;
```

Exemple
-------

L'exemple HTML complet suivant montre comment la propriété `visible` de l'objet scrollbars est utilisée.


```html
<!doctype html>
<html>
  <head>
    <title>Divers Tests DOM</title>
    <script>
 let visibleScrollbars = window.scrollbars.visible;
 </script>
  </head>
  <body>
    <p>Divers Tests DOM</p>
  </body>
</html>
```

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-window-scrollbars-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `window.locationbar`
* `window.menubar`
* `window.personalbar` (en-US)
* `window.statusbar` (en-US)
* `window.toolbar` (en-US)
Window: devicemotion event
==========================

L'évènement `devicemotion` est déclenché à intervalles réguliers et indique la quantité de force physique d'accélération que le périphérique reçoit à ce moment. Il fournit également des informations sur le taux de rotation, si disponible.

|  |  |
| --- | --- |
| Bouillonne | Non |
| Annulable | Non |
| Interface | `DeviceMotionEvent` |
| Propriété gestionnaire d'évènement | `Window.ondevicemotion` (en-US) |

Exemples
--------


```js
function handleMotionEvent(event) {
  var x = event.accelerationIncludingGravity.x;
  var y = event.accelerationIncludingGravity.y;
  var z = event.accelerationIncludingGravity.z;

  // Faire quelque chose de génial.
}

window.addEventListener("devicemotion", handleMotionEvent, true);
```

Spécifications
--------------

| Specification |
| --- |
| DeviceOrientation Event Specification # devicemotion |
| DeviceOrientation Event Specification # ref-for-dom-window-ondevicemotion |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `deviceorientation`
* `DeviceOrientation Event` (en anglais)
Window.mozInnerScreenX
======================

Résumé
------

Obtient la coordonnée X du coin supérieur gauche de la fenêtre de la fenêtre, en coordonnées d'écran.

**Note :** Cette coordonnée est indiquée en pixels CSS et non en pixels matériels. Cela signifie qu'il peut être affecté par le niveau de zoom ; pour calculer le nombre réel de pixels d'écran physiques, vous devez utiliser la propriété `nsIDOMWindowUtils.screenPixelsPerCSSPixel`.

Syntaxe
-------


```js
screenX = window.mozInnerScreenX;
```

### Valeur

* *screenX* stocke la valeur de la propriété `window.mozInnerScreenX`.
* La propriété `window.mozInnerScreenX` est une valeur en lecture seule à virgule flottante; il n'a pas de valeur par défaut.
Spécification
-------------

Ne fait partie d'aucune spécification ou recommandation technique du W3C.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `window.mozInnerScreenY`
* `nsIDOMWindowUtils.screenPixelsPerCSSPixel`
pagehide
========

L'évènement `pagehide` est émis lorsqu'une entrée dans un historique de session est sur le point d'être quittée.

Informations générales
----------------------

Spécification

HTML5

Interface

PageTransitionEvent

Bouillonne

Non

Annulable

Non

Cible

Document (dispatché sur Window)

Action par défaut

Aucune

Propriétés
----------

| Propriété | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | La cible de l'évènement (la plus haute dans l'arbre DOM). |
| `type` Lecture seule  | `DOMString` | Le type d'évènement. |
| `bubbles` Lecture seule  | `Boolean` | Si l'évènement bouillonne en temps normal ou non. |
| `cancelable` Lecture seule  | `Boolean` | Si l'évènement est annulable ou non. |
| `persisted` Lecture seule  | `boolean` | Si l'entrée est chargée depuis le cache ou non. |

Évènements liés
---------------

* `pageshow`
* Utilisation du cache de Firefox 1.5 — L'évènement pagehide
Window: vrdisplaydisconnect event
=================================

L'événement **`vrdisplaydisconnect`** de l'API WebVR est déclenché lorsqu'un écran VR compatible est déconnecté de l'ordinateur.

|  |  |
| --- | --- |
| Bulles | Non |
| Annulable | Non |
| Interface | `VRDisplayEvent` (en-US) |
| Propriété de gestionnaire d'événements | `onvrdisplaydisconnect (en-US)` |

Exemples
--------

Vous pouvez utiliser l'événement `vrdisplaydisconnect` dans une méthode `addEventListener` :


```js
window.addEventListener("vrdisplaydisconnect", function () {
  info.textContent = "Affichage déconnecté";
  reportDisplays();
});
```


Ou utilisez la propriété du gestionnaire d'événements `onvrdisplaydisconnect` (en-US) :


```js
window.onvrdisplaydisconnect = function() {
  info.textContent = 'Affichage déconnecté';
  reportDisplays();
);
```

Spécifications
--------------

#### No specification found

No specification data found for `api.Window.vrdisplaydisconnect_event`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* WebVR API
Window.opener
=============

La propriété **`opener`**, rattachée à l'interface `Window`, renvoie une référence à la fenêtre ayant ouvert la fenêtre courante, que ce soit avec `open()`, ou via une navigation avec un lien doté d'un attribut `target`.

Autrement dit, si la fenêtre `A` ouvre la fenêtre `B`, `B.opener` renvoie `A`.

Valeur
------

Un objet semblable à un objet `Window` qui fait référence à la fenêtre ayant ouvert la fenêtre courante (avec `window.open()`, ou avec un lien doté d'un attribut `target`). Si la fenêtre n'a pas été ouverte par un lien ou créée par une autre fenêtre, la propriété renvoie `null`.

Si l'ouvreur n'a pas la même origine que la page courante, les fonctionnalités de cet objet seront limitées. Ainsi, les variables et fonction associés à l'objet `window` ne seront pas accessibles. Toutefois, la navigation vers la fenêtre ouvrante est possible, autrement dit que la fenêtre ouverte peut ouvrir une URL dans l'onglet ou la fenêtre d'origine. Dans certains cas, cela peut permettre de l'hameçonnage où une page de confiance, ouverte par la fenêtre originale est remplacée par une page d'hameçonnage par la page nouvellement ouverte.

Dans les cas suivants, le navigateur ne renseigne pas `window.opener`, mais le laisse à `null` :

* Si `rel="noopener"` est présent sur le lien ou si on a passé `noopener` via le paramètre `windowFeatures`.
* Si la fenêtre a été ouverte avec un lien dont l'attribut `target` vaut `_blank`, à moins qu'il ait été explicitement demandé avec with `rel="opener"`.
* Si l'en-tête `Cross-Origin-Opener-Policy` (en-US) possède la valeur `same-origin`. La nouvelle fenêtre étant chargée dans un contexte de navigation différent, elle n'aura pas de référence à la fenêtre ouvrante.
Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-opener-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
gamepadconnected
================

L'événement gamepadconnected est déclenché lorsque le navigateur détecte quand une manette a été connecté ou qu'un button/axe de la manette a été utilisé pour la première fois.

Informations générales
----------------------

Spécification

Gamepad

Interface

Event

Propagation

Non

Annulable

Non

Cible

DefaultView (`<window>`)

Action par défaut

Aucune

Propriétés
----------

| Property | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | The event target (the topmost target in the DOM tree). |
| `type` Lecture seule  | `DOMString` | The type of event. |
| `bubbles` Lecture seule  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Lecture seule  | `Boolean` | Whether the event is cancellable or not. |
| `gamepad` Lecture seule  | `Gamepad` | The single gamepad attribute provides access to the associated gamepad data for this event. |

Exemple
-------


```js
// Noter que l'API a toujours des préfixes vendeur dans les navigateurs l'implémentant
window.addEventListener("gamepadconnected", function (event) {
  // Toutes la valeurs d'axes et les buttons sont accessibles à travers:
  event.gamepad;
});
```

Evénements liés
---------------

* gamepaddisconnected (en-US)
Voir aussi
----------

* Utilisation de l'API Gamepad (en-US)
afterprint
==========

L'événement **afterprint** est déclenché après que le document associé a été imprimé ou que l'aperçu avant impression a été fermé.

Informations générales
----------------------

Spécification

HTML5

Interface

Event

Propagation

Non

Annulable

Non

Cible

DefaultView (`<window>`)

Action par défaut

Aucune

Propriétés
----------

| Property | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | The event target (the topmost target in the DOM tree). |
| `type` Lecture seule  | `DOMString` | The type of event. |
| `bubbles` Lecture seule  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Lecture seule  | `Boolean` | Whether the event is cancellable or not. |

Evénements liés
---------------

* beforeprint (en-US)
Window.scrollByPages()
======================

**Non standard:** Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Fait défiler le document du nombre de pages spécifié.

### Syntaxe


```js
window.scrollByPages(pages);
```

### Paramètres

* `pages` est le nombre de pages à faire défiler.
* `pages` peut être un entier positif ou négatif.
### Exemples


```js
// fait défiler le document d'une page vers le bas
window.scrollByPages(1);

// fait défiler le document d'une page vers le haut
window.scrollByPages(-1);
```

### Notes

Voir aussi window.scrollBy, window.scrollByLines, window.scroll, window.scrollTo.

### Spécification

DOM Niveau 0. Ne fait pas partie de la spécification.
Window.console
==============

La propriété **`Window.console`** renvoie une référence à l'objet `console` qui fournit des méthodes pour journaliser et afficher des informations dans la console du navigateur. Ces méthodes sont uniquement destinées au débogage et ne devraient pas être utilisées pour présenter des informations aux utilisatrices et utilisateurs des sites et applications web.

Exemples
--------

### Journaliser un message dans la console

Le premier exemple affiche un texte dans la console.


```js
console.log("Une erreur s'est produite lors du chargement du contenu.");
```


Dans l'exemple suivant, on affiche un objet dans la console et les propriétés de cet objet peuvent être développées via l'interface :


```js
console.dir(someObject);
```


Pour plus d'exemples, voir la section Exemples de l'article sur `console`.

Spécifications
--------------

| Specification |
| --- |
| Console Standard  |

**Note :** Il existe de nombreuses différences d'implémentation parmi les navigateurs. Un travail d'homogénéisation et de standardisation est en cours afin de les rapprocher.
Window.captureEvents()
======================

**gecko 1.9:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

 **Non standard:** Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

La méthode **`Window.captureEvents()`** enregistre la fenêtre pour capturer tous les événements du type spécifié.

Syntaxe
-------


```js
window.captureEvents(eventType);
```


`eventType` est une combinaison des valeurs suivantes: `Event.ABORT`, `Event.BLUR`, `Event.CLICK`, `Event.CHANGE`, `Event.DBLCLICK`, `Event.DRAGDDROP`, `Event.ERROR`, `Event.FOCUS`, `Event.KEYDOWN`, `Event.KEYPRESS`, `Event.KEYUP`, `Event.LOAD`, `Event.MOUSEDOWN`, `Event.MOUSEMOVE`, `Event.MOUSEOUT`, `Event.MOUSEOVER`, `Event.MOUSEUP`, `Event.MOVE`, `Event.RESET`, `Event.RESIZE`, `Event.SELECT`, `Event.SUBMIT`, `Event.UNLOAD`.

Exemple
-------


```html
<!doctype html>
<html lang="fr">
  <head>
    <!-- ... -->
    <script>
 function reg() {
 window.captureEvents(Event.CLICK);
 window.onclick = page\_click;
 }

 function page\_click() {
 alert("événement de clic sur la page détecté!");
 }
 </script>
  </head>

  <body onload="reg();">
    <p>cliquez n'importe où sur cette page.</p>
  </body>
</html>
```

Notes
-----

Les évènements déclenchés dans le DOM par l'activité de l'utilisatrice ou l'utilisateur (tels que cliquer sur des boutons ou déplacer le focus loin du document actuel) passent généralement par la `window` de haut niveau et les objets de `document` avant d'arriver à l'objet qui a déclenché l'évènement.

Lorsque vous appelez la méthode `captureEvents()` sur `window`, les évènements du type que vous spécifiez (par exemple, `Event.CLICK`) ne passent plus par les objets « inférieurs » de la hiérarchie. Pour que les évènements « bouillonnent » comme ils le font normalement, vous devez appeler `window.releaseEvents()` (en-US) (
Obsolète
) sur la fenêtre pour l'empêcher de piéger les évènements.

Notez que vous pouvez transmettre une liste d'événements à cette méthode en utilisant la syntaxe suivante : `window.captureEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP)`.

Spécification
-------------

Cela ne fait partie d'aucune spécification.