recursal/MDN huggingface dataset:
IDBFactory
==========

L'interface **`IDBFactory`** fait partie de l'API IndexedDB et permet aux applications d'accéder à des bases de données de façon asynchrone. L'objet qui implémente cette interface est `window.indexedDB`. Autrement dit, on créera et on accèdera à une base de données (voire on la supprimera) directement via cet objet plutôt qu'en utilisant l'objet `IDBFactory`.

**Note:** Cette fonctionnalité est disponible via les Web Workers

Méthodes
--------

`IDBFactory.open`

Une méthode qui permet d'ouvrir une connexion à une base de données.

`IDBFactory.deleteDatabase`

Une méthode qui permet de demander la suppression d'une base de données.

`IDBFactory.cmp`

Une méthode qui compare deux clés et renvoie un résultat qui indique laquelle est la plus grande.

`IDBFactory.databases` (en-US)

Une méthode qui répertorie toutes les bases de données disponibles, y compris leurs noms et leurs versions.

Exemples
--------

Dans l'exemple qui suit, on effectue une requête sur une base de données et on gère les cas de succès et d'erreur. Vous pouvez consulter un exemple complet sur notre application To-do Notifications (voir l'exemple en *live*).


```js
var note = document.querySelector("ul");

// Dans la ligne suivante, inclure les préfixes des
// implémentations à tester
window.indexedDB =
  window.indexedDB ||
  window.mozIndexedDB ||
  window.webkitIndexedDB ||
  window.msIndexedDB;
// attention à ne pas utiliser "var indexedDB = ..."
// si on n'est pas dans une fonction

// On pourra éventuellement avoir besoin de références
// envers les objets window.IDB\* :
window.IDBTransaction =
  window.IDBTransaction ||
  window.webkitIDBTransaction ||
  window.msIDBTransaction;
window.IDBKeyRange =
  window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla n'a jamais préfixé ces objets,
// il n'est pas nécessaire d'écrire window.mozIDB\*)

// On ouvre la version 4 de notre base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// On ajoute ensuite les gestionnaires d'évènements
// pour gérer le succès ou l'échec de l'ouverture
// de la base de données
DBOpenRequest.onerror = function (event) {
  note.innerHTML += "<li>Erreur lors du chargement de la base.</li>";
};

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Base de données initialisée.</li>";

  // store the result of opening the database in the db
  // variable. This is used a lot later on, for opening
  // transactions and suchlike.
  db = DBOpenRequest.result;
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # factory-interface |

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

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

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

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
CSSValue
========

L'interface **CSSValue** représente la valeur calculée actuelle d'une propriété CSS.Propriétés
----------

`CSSValue.cssText` (en-US)

Une `DOMString` représentant la valeur actuelle.

`CSSValue.cssValueType` (en-US) Lecture seule 

Un raccourci non signé ( `unsigned short` ) représentant un code définissant le type de valeur. Les valeurs possibles sont:

|  |  |
| --- | --- |
| Constant | Description |
| `CSS_CUSTOM` | La valeur est une valeur personnalisée. |
| `CSS_INHERIT` | La valeur est héritée et cssText contient "inherit". |
| `CSS_PRIMITIVE_VALUE` | 
 La valeur est une valeur primitive et une instance de l'interface
 `CSSPrimitiveValue` (en-US) peut être obtenue en
 utilisant des méthodes de casting spécifiques à la liaison sur cette
 instance de l'interface CSSValue.
  |
| `CSS_VALUE_LIST` | 
 La valeur est une liste CSSValue et une instance de l'interface
 `CSSValueList` peut être obtenue en utilisant des
 méthodes de casting spécifiques à la liaison sur cette instance de
 l'interface CSSValue.
  |

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

#### No specification found

No specification data found for `api.CSSValue`.  
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
----------

* `CSSPrimitiveValue` (en-US)
* `CSSValueList`
DOMRect
=======

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Un **`DOMRect`** représente un rectangle.

Le type de boîte représenté par le `DOMRect` est spécifié par la méthode ou la propriété qui l'a retourné. Par exemple, `VREyeParameters.renderRect` (en-US) de l'API WebVR spécifie la fenêtre d'un élément canvas dans laquelle le visuel pour un oeil doit être rendu.

Il hérite de son parent `DOMRectReadOnly`.

DOMRectReadOnly

DOMRectConstructeur
------------

`DOMRect()`

Crée un nouvel objet `DOMRect`.

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

*`DOMRect` hérite des propriétés de son parent `DOMRectReadOnly`. À une différence près, elles ne sont plus en lecture seule.*

`DOMRectReadOnly.x`

La coordonnée x de l'origine du `DOMRect`.

`DOMRectReadOnly.y`

La coordonnée y de l'origine du `DOMRect`.

`DOMRectReadOnly.width`

La largeur du `DOMRect`.

`DOMRectReadOnly.height`

La hauteur du `DOMRect`.

`DOMRectReadOnly.top`

Renvoie la valeur de la coordonnée supérieure de `DOMRect` (a la même valeur que `y`, ou `y + height` *(y + hauteur)* si `height` est négative).

`DOMRectReadOnly.right`

Renvoie la valeur de la coordonnée droite du `DOMRect` (a la même valeur que `x + width` *(x + largeur)*, ou `x` si `width` est négative).

`DOMRectReadOnly.bottom`

Renvoie la valeur de la coordonnée du bas du `DOMRect` (a la même valeur que `y + height` *(y + hauteur)*, ou `y` si `height` est négative).

`DOMRectReadOnly.left`

Renvoie la valeur de la coordonnée de gauche du `DOMRect` (a la même valeur que `x`, ou `x + width` *(x + largeur)* si `width` est négative).

Méthodes
--------

*`DOMRect` hérite des méthodes de son parent `DOMRectReadOnly`.*

`DOMRectReadOnly.fromRect()` (en-US)

Crée un nouvel objet `DOMRect` avec l'emplacement et les dimensions données.

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

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # DOMRect |

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

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

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

* `DOMPoint`
Geolocation
===========

En intégrant l'interface **`Geolocation`**, on peut obtenir la position d'un ordinateur, d'un téléphone ou d'une tablette, ce qui permet aux contenus Web d'accéder à leur localisation. Un site internet ou une application mobile peut alors offrir divers services liés à la localisation de l'utilisateur.

On obtient un objet par le biais de cette interface avec la propriété `NavigatorGeolocation.geolocation` (en-US) proposée par l'objet `Navigator` .

**Note :** Pour des raisons de sécurité, quand une page web tente d'accéder aux données de localisation, l'utilisateur est prévenu, et son accord lui est demandé. Sachez que chaque navigateur a ses propres méthodes et politiques pour gérer les autorisations.

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

*L'interface de géolocalisation n'utilise ou n'hérite d'aucune propriété.*

Méthodes
--------

*L'interface de géolocalisation n'hérite d'aucune méthode.*

`Geolocation.getCurrentPosition()`

Determine la position actuelle de l'appareil et donne en retour l'objet `Position` (en-US) avec sa valeur.

`Geolocation.watchPosition()`

Retourne une valeur `long` représentant la nouvelle fonction callback, créée pour être utilisée à chaque fois que la position de l'appareil change.

`Geolocation.clearWatch()`

Supprime le lien créé par la précédente utilisation de `watchPosition()`.

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

| Specification |
| --- |
| Geolocation API # geolocation\_interface |

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

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

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

* Utiliser geolocation (en-US)
CryptoKey
=========

L'interface **`CryptoKey`** représente une clef cryptographique dérivé d'un algorithme de clef spécifique.

Un objet `CryptoKey` peut être obtenu en utilisant : `SubtleCrypto.generateKey()` (en-US), `SubtleCrypto.deriveKey()` (en-US) ou `SubtleCrypto.importKey()` (en-US)

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

*Cette interface n'hérite d'aucune propriété.*

`CryptoKey.type` (en-US)

Retourne une énumération de valeurs représentant un type de clef, une clef secrète (pour un algorithme symétriques), une clef publique ou privée (pour un algorithme asymétrique)

`CryptoKey.extractable` (en-US)

Retourne un `booléen` indiquant si l'information peut être extraite de l'application ou non.

`CryptoKey.algorithm` (en-US)

Retourne un objet opaque représentant un chiffre particulier avec lequel la clé doit être utilisée avec.

`CryptoKey.usages` (en-US)

Retourne un tableau contenant une énumération de valeurs indiquant quel est la clé qui peut être utilisée.

Méthodes
--------

*Cette interface n'hérite et n'implémente aucune méthode.*

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

| Specification |
| --- |
| Web Cryptography API # cryptokey-interface |

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

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

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

* Web Crypto API
* Sécurité du Web
* Vie privée, autorisations et sécurité de l'information (en-US)
* `Crypto` et `Crypto.subtle`.
PushEvent
=========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'interface **`PushEvent`** de l'API Push représente un message Push qui a été reçu. Cet événement est envoyé au scope global (en-US) d'un `ServiceWorker`. Il contient les informations transmises de l'application serveur vers un `PushSubscription` (en-US).

Constructeur
------------

`PushEvent.PushEvent()` (en-US)

Créer un nouvel objet `PushEvent`.

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

*Hérite des propriétés de son parent, `ExtendableEvent`. Propriétés additionnelles:*

`PushEvent.data` (en-US) Lecture seule 

Retourne une référence à un objet `PushMessageData` (en-US) contenant les données transmises au `PushSubscription` (en-US).

Méthodes
--------

*Hérite des méthodes de son parent, `ExtendableEvent`*.

Exemples
--------

L'exemple suivant prends les données du `PushEvent` et les affiche sur tous les clients du service worker.


```js
self.addEventListener("push", function (event) {
  if (!(self.Notification && self.notification.permission === "granted")) {
    return;
  }

  var data = {};
  if (event.data) {
    data = event.data.json();
  }
  var title = data.title || "Something Has Happened";
  var message = data.message || "Here's something you might want to check out.";
  var icon = "images/new-notification.png";

  var notification = new Notification(title, {
    body: message,
    tag: "simple-push-demo-notification",
    icon: icon,
  });

  notification.addEventListener("click", function () {
    if (clients.openWindow) {
      clients.openWindow(
        "https://example.blog.com/2015/03/04/something-new.html",
      );
    }
  });
});
```

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

| Specification |
| --- |
| Push API # pushevent-interface |

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

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

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

* Utiliser l'API Push (en-US)
* API Push
* API Service Worker
XMLHttpRequest.withCredentials
==============================

La propriété **`XMLHttpRequest.withCredentials`** est un booléen qui indique si une requête `Access-Control` entre plusieurs sites devrait être réalisée avec des informations d'authentification (*credentials*) telles que des cookies, des en-têtes d'autorisation ou des certificats clients. Activer `withCredentials` n'aura aucun impact sur les requêtes effectuées sur un même site.

Cette propriété est également utilisée afin d'indiquer lorsque les cookies doivent être ignorés pour une réponse. Par défaut, la valeur est à `false`. Une requête `XMLHttpRequest` d'un autre domaine ne pourra pas définir de cookies pour cet autre domaine à moins que `withCredentials` vaille `true` avant la requête.

Les cookies tiers obtenus lorsque `withCredentials` vaut `true` continuent de respecter la règle de même origine et ne peuvent donc pas être manipulés en script via `document.cookie` (en-US) ou depuis les en-têtes de la réponse.

**Note :** Cette propriété n'a aucun impact pour les requêtes effectuées sur le même site.

**Note :** Les réponses `XMLHttpRequest` provenant d'un domaine différent ne peuvent pas définir de cookies pour ce domaine à moins d'avoir `withCredentials` à `true` avant l'envoi de la requête (quelle que soit la valeur de l'en-tête `Access-Control-`).

Exemples
--------


```js
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);
```

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

| Specification |
| --- |
| XMLHttpRequest Standard # the-withcredentials-attribute |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
XMLHttpRequest.open()
=====================

La méthode **`open()`** de `XMLHttpRequest` instancie une nouvelle requête ou réinitialise un déjà existante.

**Note :** Appeler cette méthode pour une requête déjà active (pour laquelle une méthode `open()` a déjà été appelée) est équivalent à appeler `abort()` (en-US).

Syntaxe
-------


```js
XMLHttpRequest.open(method, url);
XMLHttpRequest.open(method, url, async);
XMLHttpRequest.open(method, url, async, user);
XMLHttpRequest.open(method, url, async, user, password);
```

### Paramètres

`method`

La méthode de requête HTTP à utiliser telles que `GET`, `POST`, `PUT`, `DELETE`, etc. Ignorée pour les URL non-HTTP(S).

`url`

Une `DOMString` représentant l'URL à laquelle envoyer la requête.

`async` Facultatif

Un booléen optionnel par défaut à `true`, indiquant s'il faut, ou pas, traiter la requête en asynchrone. Si la valeur est à `false`, la méthode `send()` ne retourne rien tant qu'elle n'a pas reçu la réponse. Si la valeur est à `true`, une notification de transaction complétée est fournie en utilisant un gestionnaire d'évènements. Le paramètre doit être sur "true" si l'attribut `multipart` est sur "true" aussi ou une exception sera levée.

**Note :** Les requêtes asynchrones sur le "thread" principal peuvent facilement dérouter l'utilisateur et devraient être évitées; En fait, de nombreux navigateurs ont un support XHR obsolète sur la totalité du "thread" principal. Les requêtes synchrones sont acceptées dans `Worker`.

`user` Facultatif

Le nom de l'utilisateur, optionnel, à utiliser dans un but d'authentification. Sa valeur par défaut est `null`.

`password` Facultatif

Le mot de passe, optionnel, à utiliser dans un but d'authentification. Sa valeur par défaut est `null`.

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

| Specification |
| --- |
| XMLHttpRequest Standard # the-open()-method |

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

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

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

* Utiliser XMLHttpRequest
* Méthodes `XMLHttpRequest` en relation : `setRequestHeader()`,`send()`, and `abort()` (en-US)
XMLHttpRequest.send()
=====================

La méthode `XMLHttpRequest` **`send()`** envoie la requête au serveur. Si la requête est asynchrone (elle l'est par défaut), la méthode envoie un retour dés que la requête est partie et le résultat est intégré en utilisant les évènements. En cas de requête synchrone, elle ne renvoie rien tant que la réponse n'est pas retournée.

`send()` accepte un paramètre optionnel qui vous permet de spécifier le corps de la requête; c'est principalement utilisé pour les requêtes comme `PUT`. Si la méthode est `GET` ou `HEAD`, le paramètre `body` est ignoré et le corps de la requête est fixé à `null`.

Si aucun "header"`Accept` n'a été paramétré dans `setRequestHeader()`, un "header" `Accept` avec le type `"*/*"` (tous types) est envoyé.

Syntaxe
-------


```js
XMLHttpRequest.send(body);
```

### Paramètres

`body` Facultatif

Le corps des données à envoyer dans la requête XHR. Cela peut être :

* Un `Document`, dans quel cas il est sérialisé avant d'être envoyé.
* Un `XMLHttpRequestBodyInit` qui, selon la spécification `Fetch` (en anglais), peut être un `Blob`, `BufferSource`, `FormData`, `URLSearchParams` ou un objet `USVString`.
* `null`

Si la valeur du corps n'est pas spécifiée, la valeur par défaut `null` est employée.

La meilleure manière d'envoyer du contenu binaire (par exemple dans l'upload de fichiers) est d'utiliser un `ArrayBufferView` (en-US) ou `Blob` en conjonction avec la méthode `send()`.

### Valeur de retour

`undefined`.

### Exceptions

| Exception | Description |
| --- | --- |
| `InvalidStateError` | `send()` a déjà été invoquée pour la requête, et/ou celle-ci est incomplète. |
| `NetworkError` | Le type de ressource à récupérer est un **BLOB**, *(binary large object*) , et la méthode n'est pas `GET`. |

Exemple: GET
------------


```js
var xhr = new XMLHttpRequest();
xhr.open("GET", "/server", true);

xhr.onload = function () {
  // Requête finie, traitement ici.
};

xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);
```

Example: POST
-------------


```js
var xhr = new XMLHttpRequest();
xhr.open("POST", "/server", true);

//Envoie les informations du header adaptées avec la requête
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function () {
  //Appelle une fonction au changement d'état.
  if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
    // Requête finie, traitement ici.
  }
};
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);
```

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

| Specification |
| --- |
| XMLHttpRequest Standard # the-send()-method |

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

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

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

* L'utilisation de XMLHttpRequest
* HTML dans XMLHttpRequest (en-US)
XMLHttpRequest.setRequestHeader()
=================================

La méthode **`setRequestHeader()`** de l'objet `XMLHttpRequest` permet d'éditer le header d'une requête HTTP. Vous devez appeler la méthode `setRequestHeader()`, après la méthode `open()`, et avant `send()`. Si vous faite appel plusieurs fois à `setRequestHeader()` dans une même requête, tout sera combiné au sein d'un même header.

A chaque fois que vous appellez `setRequestHeader()`, son contenu est ajouté à la fin du header existant.

Si aucun `Accept` n'a été configurer avec cette méthode, un `Accept` header avec le type `"*/*"` sera envoyé avec la requête lorsque `send()` sera appellée.

Pour des raisons de sécurité, certain header ne peuvent être manipulés que par le user agent. Ceux-ci contiennent les paramètres forbidden header names et forbidden response header names.

**Note :** Dans certain cas, vous pourrez rencontrer l'erreur / exception "**not allowed by Access-Control-Allow-Headers in preflight response**" quand vous enverez une requête cross domains. Dans ce cas, vous devrez configurer `Access-Control-Allow-Headers` (en-US) dans votre réponse HTTP coté serveur.

Syntaxe
-------


```js
XMLHttpRequest.setRequestHeader(header, value);
```

### Paramètre

`header`

Le paramètre du header.

`value`

La valeur de ce paramètre.

### Valeurs de retour

`undefined`.

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

| Specification |
| --- |
| XMLHttpRequest Standard # the-setrequestheader()-method |

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

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

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

* Using XMLHttpRequest
* HTML in XMLHttpRequest (en-US)
abort
=====

L'événement **abort** est déclenché lorsque la progression a été interompue (Non causé par une erreur)

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

Spécification

Progress

Interface

ProgressEvent

Propagation

Non

Annulable

Non

Cible

Element

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. |
| `lengthComputable` Lecture seule  | `Boolean` | Specifies whether or not the total size of the transfer is known. Read only. |
| `loaded` Lecture seule  | unsigned long (long) | The number of bytes transferred since the beginning of the operation. This doesn't include headers and other overhead, but only the content itself. Read only. |
| `total` Lecture seule  | unsigned long (long) | The total number of bytes of content that will be transferred during the operation. If the total size is unknown, this value is zero. Read only. |

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

* Les évènements liés
    + `loadstart` (en-US)
    + `load` (en-US)
    + `progress` (en-US)
    + `error` (en-US)
    + `loadend`
* Surveillance de la progression (en-US)
XMLHttpRequest.onreadystatechange
=================================

Un `EventHandler` (en-US) qui réagit aux changements de `readyState`. Le callback est appelé dans le contexte du thread de rendu. La propriété **`XMLHttpRequest.onreadystatechange`** contient le gestionnaire d'évènement appelé lorsque l'évènement `readystatechange` est déclenché, soit chaque fois que la propriété `readyState` de `XMLHttpRequest` est modifiée.

**Attention :** Ne doit pas être utilisé avec des requêtes synchrone ni avec du code natif.

Syntaxe
-------


```js
XMLHttpRequest.onreadystatechange = callback;
```

### Valeurs

* `callback` est la fonction exécutée lorsque `readyState` change.
Exemple
-------


```js
var xhr = new XMLHttpRequest(),
  method = "GET",
  url = "https://developer.mozilla.org/";

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4 && xhr.status === 200) {
    console.log(xhr.responseText);
  }
};
xhr.send();
```

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

| Specification |
| --- |
| XMLHttpRequest Standard # event-xhr-readystatechange |
| XMLHttpRequest Standard # handler-xhr-onreadystatechange |

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

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