recursal/MDN huggingface dataset:
crossOriginIsolated
===================

**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.

La propriété globale en lecture seule **`crossOriginIsolated`** renvoie une valeur booléenne indiquant si un objet `SharedArrayBuffer` peut être envoyé via un appel à `Window.postMessage()`.

 Cette valeur dépend des en-têtes `Cross-Origin-Opener-Policy` (en-US) et
 `Cross-Origin-Embedder-Policy` (en-US) présents dans la réponse HTTP.

Valeur
------

Une valeur booléenne.

Exemples
--------


```js
if (crossOriginIsolated) {
  // On peut envoyer un SharedArrayBuffer
} else {
  // Sinon on fait autre chose
}
```

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

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

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

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

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

* L'API *Service Workers*
* L'API *Web Workers*
ImageData
=========

L'interface **`ImageData`** représente les données des pixels au sein d'une certaine zone dans un élément `<canvas>`. Elle est définie par les méthodes des constructeurs ou créateurs d'objet `ImageData()` (en-US) sur l'objet `CanvasRenderingContext2D` associé à canevas, `createImageData()` (en-US) et `getImageData()`. Elle peut être également utilisée pour redéfinir une partie du canevas en utilisant `putImageData()` (en-US).

Constructeurs
-------------

`ImageData()` (en-US) 
Expérimental

Crée un objet ImageData à partir d'un `Uint8ClampedArray` donné et la taille de l'image qu'il contient. Si aucun tableau n'est donné, il crée une image d'un rectangle noir. Notez que c'est la façon la plus courante de créer un tel objet dans les "Workers" car `createImageData ()` (en-US) n'y est pas disponible.

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

`ImageData.data`

Un `Uint8ClampedArray` (en-US) représentant un tableau à une seule dimension contenant les données des pixels sous format RVBA, chaque valeur comprise entre `0` et `255` (inclus).

`ImageData.height` (en-US) Lecture seule 

Un `unsigned` `long` représentant la hauteur effective, en pixels, de l'objet `ImageData`.

`ImageData.width` (en-US) Lecture seule 

Un `unsigned` `long` représentant la largeur effective, en pixels, de l'objet `ImageData`.

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

| Specification |
| --- |
| HTML Standard # imagedata |

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

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

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

* `CanvasRenderingContext2D`.
* L'élément `<canvas>` et l'interface associée, `HTMLCanvasElement`.
XMLDocument
===========

**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 XMLDocument représente un document XML. Elle hérite du `Document` générique et ne lui ajoute aucune méthode ou propriété spécifique : néanmoins, plusieurs algorithmes se comportent différemment avec les deux types de documents.

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

*Cette interface n'a pas de propriété spécifique et n'en hérite aucune.*

Méthodes
--------

*Cette interface n'ajoute aucune nouvelle méthode.*

`XMLDocument.load()`

Charge un document XML.

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

| Specification |
| --- |
| DOM Standard # xmldocument |

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

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

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

* Référence du DOM
HTMLUnknownElement
==================

L'interface **`HTMLUnknownElement`** représente un élément HTML invalide et dérive de l'interface `HTMLElement`, mais sans implémenter aucune propriété ou méthode additionnelle.

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

*Pas de propriété spécifique ; hérite des propriétés de son parent, `HTMLElement`.*

Méthodes
--------

*Pas de méthode spécifique ; hérite des méthodes de son parent, `HTMLElement`.*

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

| Specification |
| --- |
| HTML Standard # htmlunknownelement |

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

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

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

* Les éléments HTML obsolètes ou non standard implémentant cette interface : `<bgsound>`, `<isindex>`, `<multicol>`, `<nextid>`, `<rb>`, `<spacer>`
* `SVGUnknownElement`
GeolocationPositionError
========================

**Contexte sécurisé:** Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'interface **`GeolocationPositionError`** représente la raison de l'erreur apparue lorsque l'on utilise la géolocalisation de l'appareil.

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

*L'interface `GeolocationPositionError` n'hérite d'aucune propriété.*

`GeolocationPositionError.code` (en-US) Lecture seule  Contexte sécurisé

Retourne un `unsigned short` représentant un code d'erreur. Les valeurs possibles sont:

| Valeur | Constante associée | Description |
| --- | --- | --- |
| `1` | `PERMISSION_DENIED` | L'acquisition de la position échoue car la page n'a pas l'autorisation de le faire. |
| `2` | `POSITION_UNAVAILABLE` | L'acquisition de la localisation échoue car au moins une source donnant la position a retourné une erreur interne. |
| `3` | `TIMEOUT` | Le temps alloué pour obtenir la position défini par `PositionOptions.timeout` est écoulé avant que l'information soit obtenu. |

`GeolocationPositionError.message` (en-US) Lecture seule  Contexte sécurisé

Retourne une `DOMString` compréhensible par un humain décrivant les détails de l'erreur. Les spécifications indiquent que cela sert au débogage et ne doit pas être directement affiché à l'utilisateur.

Méthodes
--------

**L'interface* `GeolocationPositionError` *n'implémente et n'hérite d'aucune méthode.**

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

| Specification |
| --- |
| Geolocation API # position\_error\_interface |

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

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

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

* Utiliser l'API de géolocalisation (en-US)
* `Geolocation`
AudioWorklet
============

**Contexte sécurisé:** Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'interface **`AudioWorklet`** dans l'API Web Audio est utilisée pour fournir des scripts de traitement audio personnalisés qui s'exécutent dans un thread séparé afin de fournir un traitement audio à très faible latence. Le code du worklet est exécuté dans le contexte d'exécution global `AudioWorkletGlobalScope` (en-US), en utilisant un thread audio web séparé qui est partagé par le worklet et les autres nœuds audio.

L'accès à distance d'`AudioWorklet` du contexte audio se fait par la propriété `BaseAudioContext.audioWorklet` (en-US).

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

*L'interface `AudioWorklet` ne définit pas de propriétés propres, mais hérite des propriétés de `Worklet` (en-US).*

Méthodes
--------

Cette interface hérite des méthodes de *`Worklet` (en-US). L'interface `AudioWorklet`*ne définit aucune méthode propre*.*

Evénements
----------

*L'interface `AudioWorklet` n'a pas d'évènements auxquels elle répond.*

Exemples
--------

Voir `AudioWorkletNode` (en-US) pour des exemples complets de création de nœuds audio personnalisés.

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

| Specification |
| --- |
| Web Audio API # AudioWorklet |

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

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

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

* `AudioWorkletGlobalScope` (en-US) — le contexte global d'exécution d'un `AudioWorklet`
* API Web Audio
* Utiliser la Web Audio API
Gamepad
=======

L'interface **`Gamepad`** de l'API Gamepad définit une manette individuelle ou un autre contrôleur, autorisant l'accès à des informations telles que les boutons pressés, la position des axes et l'identifiant.

Un objet `Gamepad` peut être retourné de deux manières :

* Via la propriété `gamepad` des événements `gamepadconnected` et `gamepadisdisconnected`.
* Ou en prenant n'importe quelle position dans le tableau retourné par la méthode `Navigator.getGamepads()`.
Propriétés
----------

`Gamepad.axes` (en-US) Lecture seule 

Un tableau représentant les contrôles avec les axes présents sur le dispositif (par exemple : les joysticks analogiques).

`Gamepad.buttons` (en-US) Lecture seule 

Un tableau d'objets `gamepadButton` (en-US) représentant les boutons présents sur le dispositif.

`Gamepad.connected` (en-US) Lecture seule 

Un booléen indiquant si la manette est toujours connectée au système.

`Gamepad.displayId` (en-US) Lecture seule 

Retourne `VRDisplay.displayId` (en-US) associé à `VRDisplay` (en-US) — Le VRDisplay dont la manette contrôle la scène affichée.

`Gamepad.id` (en-US) Lecture seule 

Un `DOMString` contenant l'information d'identification de la manette.

`Gamepad.index` (en-US) Lecture seule 

Un entier qui s'auto-incrémente pour être unique à chaque dispositif actuellement connecté au système.

`Gamepad.mapping` (en-US) Lecture seule 

Une chaîne de caractères indiquant si le navigateur a remappé les contrôles du dispositif à un layout connu.

`Gamepad.timestamp` (en-US) Lecture seule 

Un `DOMHighResTimeStamp` représentant la dernière fois que les données pour cette manette a été mise à jour. *Noter que cette propriété n'est pas supportée partout.*

### Extensions expérimentales apportées à `Gamepad`

Les interfaces suivantes sont définies dans la spécification `GamepadExtensions` et fournissent un accès à des fonctionnalités expérimentales tels que les retours haptiques et informations de position des contrôleurs WebVR.

`Gamepad.hand` (en-US) Lecture seule 

Une énumération qui définit dans quelle main le contrôleur est tenue (ou dans laquelle il est probablement tenue).

`Gamepad.hapticActuators` (en-US) Lecture seule 

Un tableau contenant des objets `GamepadHapticActuator` (en-US) dont chacun représente un matériel disponible pour le contrôleur pour les retours haptiques.

`Gamepad.pose` (en-US) Lecture seule 

Un objet `GamepadPose` (en-US) qui représente la position et l'orientation d'un contrôleur WebVR dans l'espace en trois dimensions.

Exemples
--------


```js
window.addEventListener("gamepadconnected", function (event) {
  console.log(
    "Contrôleur connecté à %d: %s. %d boutons, %d axes.",
    event.gamepad.index,
    event.gamepad.id,
    event.gamepad.buttons.length,
    event.gamepad.axes.length,
  );
});
```

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

| Specification |
| --- |
| Gamepad # gamepad-interface |
| Gamepad Extensions # partial-gamepad-interface |

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

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

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

* Utilisation de l'API Gamepad
* API Gamepad
ProcessingInstruction
=====================

Une **instruction de traitement** intègre des instructions spécifiques à une application en XML qui peuvent être ignorées par d'autres applications (ne les reconnaissant pas). Même si un processeur XML ignore les instructions de traitement, il leur donnera une place dans le DOM.

Une instruction de traitement est différente de la déclaration XML, qui fournit des informations sur le document telles que le codage des caractères et ne peut apparaître que comme le premier élément d'un document.

Les instructions de traitement définies par l'utilisateur ne peuvent pas commencer par '`xml`', car ceux-ci sont réservés (par exemple `<?xml-stylesheet ?>`).

Les instructions de traitement héritent des méthodes et propriétés de `Node`.

### Attributs

* target (*cible*) (DOMString) (*chaîne de caractères*) - après le `<?` et avant un whitespace (*espace*) le séparant des `data` (*données*)
* data (*données*) (DOMString) (*chaîne de caractères*) - premier caractère non espace après `target` et avant `?>`
### Spécification

* DOM Level 1 Core : ProcessingInstruction interface
### Voir aussi

* document.createProcessingInstruction
InputEvent
==========

Baseline 2023
-------------

Newly availableSince March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback
**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 **`InputEvent`** représente un évènement notifiant la modification d'un contenu éditable.

Event

UIEvent

InputEventConstructeur
------------

`InputEvent()` (en-US)

Crée un objet `InputEvent`.

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

Cette interface hérite des propriétés de ses parents, `UIEvent` et `Event`.

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

Retourne une `DOMString` avec les caractères insérést. Cela peut être une chaîne vide si la modification n'insère pas de texte (comme la suppression de caractères, par exemple).

`InputEvent.dataTransfer` (en-US)Lecture seule 

Retourne un objet `DataTransfer` contenant des informations sur des données de texte riche (*richtext*) ou brut (*plaintext*) étant ajoutées ou supprimées du contenu éditable.

`InputEvent.inputType` (en-US)Lecture seule 

Retourne le type de modification du le contenu éditable tel que, par exemple, l'insertion, la suppression ou le formatage de texte. Voir la page de la propriété pour une liste complète des types de modification.

`InputEvent.isComposing` (en-US)Lecture seule 

Retourne une valeur `booléenne` indiquant si l'évènement est émis après `compositionstart` et avant `compositionend`.

Méthodes
--------

Cette interface hérite des méthodes de ses parents, `UIEvent` et `Event`.

`InputEvent.getTargetRanges()` (en-US)

Retourne un tableau de `ranges` statiques qui seront affectés par une modification du DOM si l'évènement input n'est pas annulé.

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

| Specification |
| --- |
| Input Events Level 2 # interface-InputEvent |
| UI Events # interface-inputevent |

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

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

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

* L'évènement `beforeinput`
* L'évènement `input`
BeforeUnloadEvent
=================

L'évènement **`beforeunload`** est déclenché quand la fenêtre, le document et ses ressources sont sur le point d'être déchargées.

Si une chaine non vide est assignée à la propriété `returnValue` de l'évènement, une boite de confirmation apparait pour demander à l'utilisateur de valider le changement d'adresse (voir les exemples ci-dessous). Si aucune valeur n'est fournise, l'évènement est traité silencieusement. Certaines implantations ne demandent confirmation que si le cadre ou tout cadre embarqué reçoit une action utilisateur. Voir Compatibilité des navigateurs pour plus d'informations.

|  |  |
| --- | --- |
| **Bouillonne** | No |
| **Annulable** | Yes |
| **Cibles** | defaultView |
| **Interface** | `Event` |

Exemples
--------


```js
window.addEventListener("beforeunload", function (event) {
  event.returnValue = "\\o/";
});

// est équivalent à
window.addEventListener("beforeunload", function (event) {
  event.preventDefault();
});
```


Les navigateurs basés sur WebKit ne suivent pas la spécification concernant la demande de confirmation. Un exemple similaire fonctionnant sur presque tous les navigateurs serait plutôt comme :


```js
window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\\o/";

  (e || window.event).returnValue = confirmationMessage; // Gecko + IE
  return confirmationMessage; /\* Safari, Chrome, and other
 \* WebKit-derived browsers \*/
});
```

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

| Specification |
| --- |
| HTML Standard # the-beforeunloadevent-interface |

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

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

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

* `DOMContentLoaded`
* `readystatechange`
* `load`
* `beforeunload`
* `unload`
* Unloading Documents — Prompt to unload a document
Encoding API
============

**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'`API Encoding` fournit un mecanisme de traitement de texte dans plusieurs character encodings, incluant les encodings non-UTF-8.

L'API fournit quatres interfaces: `TextDecoder` (en-US), `TextEncoder`, `TextDecoderStream` (en-US) et `TextEncoderStream` (en-US).

Interfaces
----------

* `TextDecoder` (en-US)
* `TextEncoder`
* `TextDecoderStream` (en-US)
* `TextEncoderStream` (en-US)
Tutoriels & Outils
------------------

* Un shim permettant d'utiliser cette interface dans les navigateurs ne le supportant pas.
* `StringView` – une représentation de type C des chaînes basée sur des tableaux typés.
Spécifications
--------------

| Specification |
| --- |
| Encoding Standard # interface-textdecoder |
| Encoding Standard # interface-textencoder |
| Encoding Standard # interface-textencoderstream |
| Encoding Standard # interface-textdecoderstream |

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

### api.TextDecoder

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

### api.TextEncoder

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

### api.TextEncoderStream

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

### api.TextDecoderStream

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

Le **WebGLProgram** fait partie de l'API WebGL et il est une combinaison de deux `WebGLShader` compilés constitués d'un shader de sommet et d'un shader de fragment (tous deux écrits en GLSL). Ces dernier sont ensuite liés dans un programme utilisable.


```js
var programme = gl.createProgram();

// Lier les shaders préexistants
gl.attachShader(programme, shaderDeSommet);
gl.attachShader(programme, shaderDeFragment);

gl.linkProgram(programme);

if (!gl.getProgramParameter(programme, gl.LINK\_STATUS)) {
  var info = gl.getProgramInfoLog(programme);
  throw "Impossible de compiler le program WebGL.\n\n" + info;
}
```


Voir `WebGLShader` pour des informations sur la création de `shaderDeSommet` et de `shaderDeFragment` dans le programme ci-dessus.

Exemples
--------

### Utilisation du programme

Les étapes pour travailler effectivement avec le programme impliquent d'indiquer à la GPU d'utiliser le programme, de lier les données et les options de configuration appropriées, et enfin, de dessiner quelque chose à l'écran.


```js
// Utiliser le programme
gl.useProgram(programme);

// Lier les données d'attribut existantes
gl.bindBuffer(gl.ARRAY\_BUFFER, buffer);
gl.enableVertexAttribArray(attributeLocation);
gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);

// Dessiner un unique triangle
gl.drawArrays(gl.TRIANGLES, 0, 3);
```

### Suppression du programme

S'il y a une erreur lors de l'édition de liens du programme, ou si vous voulez supprimer un programme existant, alors c'est tout simple, il suffit d'exécuter `WebGLRenderingContext.deleteProgram()` (en-US). Cela libère la mémoire du programme lié.


```js
gl.deleteProgram(programme);
```

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

| Specification |
| --- |
| WebGL Specification # 5.6 |

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

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

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

* `WebGLShader`
* `WebGLRenderingContext.attachShader()`
* `WebGLRenderingContext.compileShader()`
* `WebGLRenderingContext.createProgram()`
* `WebGLRenderingContext.createShader()`
* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.deleteShader()`
* `WebGLRenderingContext.detachShader()` (en-US)
* `WebGLRenderingContext.getAttachedShaders()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
* `WebGLRenderingContext.getShaderParameter()`
* `WebGLRenderingContext.getShaderPrecisionFormat()` (en-US)
* `WebGLRenderingContext.getShaderInfoLog()` (en-US)
* `WebGLRenderingContext.getShaderSource()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.isShader()` (en-US)
* `WebGLRenderingContext.linkProgram()` (en-US)
* `WebGLRenderingContext.shaderSource()`
* `WebGLRenderingContext.useProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)