recursal/MDN huggingface dataset:
NamedNodeMap
============

L'interface **`NamedNodeMap`** représente une collection d'objets `Attr`. Les objets de cette collection n'ont pas d'ordre particulier (contrairement à `NodeList`) mais on peut y accéder grâce à un index (comme pour un tableau).

Un objet `NamedNodeMap` est *vivant* et sera automatiquement mis à jour si des modifications sont apportées à son contenu (que cela provienne d'une source interne ou externe).

**Note :** Bien qu'intitulée `NamedNodeMap`, cette interface ne manipule pas d'objets `Node` mais des objets `Attr`. Ces derniers étaient à l'origine (et le sont toujours pour certaines implémentations) une classe spécialisée de `Node`.

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

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

`NamedNodeMap.length` (en-US) Lecture seule 

Cette propriété renvoie le nombre d'objets contenus dans la *map*.

Méthodes
--------

*Cette interface n'hérite d'aucune méthode.*

`NamedNodeMap.getNamedItem()` (en-US)

Cette méthode renvoie un objet `Attr` qui correspond au nom indiqué.

`NamedNodeMap.setNamedItem()` (en-US)

Cette méthode remplace ou ajoute l'objet `Attr` identifié dans la collection par le nom indiqué.

`NamedNodeMap.removeNamedItem()` (en-US)

Cette méthode retire l'objet `Attr` de la collection à partir du nom indiqué.

`NamedNodeMap.item()` (en-US)

Cette méthode renvoie l'objet `Attr` à l'index indiqué (ou `null` si l'index est supérieur ou égal au nombre de nœuds.

`NamedNodeMap.getNamedItemNS()` (en-US)

Cette méthode renvoie un objet `Attr` identifié par un espace de noms et un nom local associé.

`NamedNodeMap.setNamedItemNS()` (en-US)

Cette méthode remplace ou ajoute un objet `Attr` identifié par un espace de noms et un nom local associé.

`NamedNodeMap.removeNamedItemNS()` (en-US)

Cette méthode retire l'objet `Attr` de la collection à partir d'un espace de noms et d'un nom local associé.

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

| Specification |
| --- |
| DOM Standard # interface-namednodemap |

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

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

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

* `Element.attributes`
* `Attr`
* `NodeList`
PasswordCredential
==================

**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 **`PasswordCredential`**, rattachée à l'API Credential Management, fournit des informations quant à un couple nom d'utilisateur/mot de passe. Pour les navigateurs qui prennent en charge cette fonctionnalité, une instance de cette interface peut être passée comme propriété `credential` de l'objet `init` utilisé comme argument de la méthode globale `fetch`.

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

`PasswordCredential()`

Crée un nouvel objet `PasswordCredential`.

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

*Hérite des propriétés de l'interface parente, `Credential`.*

`PasswordCredential.additionalData` 
Obsolète

Une instance `FormData` ou une instance `URLSearchParams` ou `null`. Les données de cet objet seront ajoutées au corps de la requête et envoyées au point distant avec les informations d'authentification.

`PasswordCredential.iconURL` Lecture seule 

Une chaîne de caractères `USVString` contenant une URL qui pointe vers une image servant d'icône. Cette image est destinée à être utilisée dans le sélecteur d'informations d'authentification. L'URL doit être accessible sans authentification.

`PasswordCredential.idName` 
Obsolète

Une chaîne de caractères `USVString` contenant le nom qui sera uitlisé pour le champ d'identifiant lorsque l'objet courant sera envoyé au point distant grâce à `fetch`. La valeur par défaut correspond à `"username"` mais il est possible de surcharger cette valeur afin qu'elle corresponde à ce qui est attendu par le service distant.

`PasswordCredential.name` Lecture seule 

Une chaîne de caractères `USVString` qui contient un nom public, lisible par un humain et qui sera affiché dans le sélecteur d'informations d'authentification.

`PasswordCredential.password` Lecture seule 

Une chaîne de caractères `USVString` qui contient le mot de passe associé aux informations d'authentification.

`PasswordCredential.passwordName` 
Obsolète

Une chaîne de caractères `USVString` qui représente le nom utilisé pour le mot de passe lorsque l'objet courant est envoyé au point distant avec `fetch`. Par défaut, cette propriété vaut `"password"` mais elle peut être surchargée afin que sa valeur corresponde à ce qui est attendu par le service distant.

### Gestionnaires d'évènement

Aucun.

Méthodes
--------

Aucune.

Exemples
--------


```js
var cred = new PasswordCredential({
  id: id,
  password: password,
  name: name,
  iconURL: iconUrl,
});

navigator.credentials.store(cred).then(function () {
  // Faire quelque chose avec.
});
```

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

| Specification |
| --- |
| Credential Management Level 1 # passwordcredential-interface |

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

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

L'API **Web Cryptography** (aussi appelée *Web Crypto API*) est une interface permettant à un script d'utiliser des primitives cryptographiques afin de construire des systèmes utilisant la cryptographie.

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

**Attention :** L'API Web Crypto fournit un ensemble de primitives cryptographiques de bas niveau. Il est très facile de mal les utiliser et les pièges peuvent être très subtils.

Même si vous utilisez les fonctionnalités cryptographiques basiques correctement, ayez conscience que la gestion sécurisée des clés et la conception générale d'un système sécurisé sont des tâches extrêmement difficiles à réaliser correctement et qui incombent donc généralement à des experts en sécurité.

Une légère erreur dans la conception et/ou l'implémentation d'un système de sécurité peut rendre la sécurité d'un tel système complètement vaine.

N'hésitez pas à apprendre, bidouiller, expérimenter, mais ne garantissez pas la sécurité de votre production (explicitement ou implicitement) avant qu'une personne compétente en la matière l'ait revue. Le cours Crypto 101 peut être une bonne introduction pour apprendre comment concevoir et implémenter des systèmes sécurisés.

Interfaces
----------

Certains navigateurs implémentent une interface appelée `Crypto` sans qu'elle soit bien définie ou sûre sur le plan cryptographique. Afin d'éviter toute confusion, les méthodes et proprietés de cette première interface ont été retirées des navigateurs implémentant l'API Web Crypto. L'ensemble des méthodes de l'API Web Crypto sont accessibles via une nouvelle interface : `SubtleCrypto` (en-US). La propriété `Crypto.subtle` donne accès à un objet qui l'implémente.

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

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

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

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

Interface SVG rect
------------------

`SVGRect` représente la géométrie rectangulaire. Les rectangles consistent en une paire de coordonnées (x,y) correspondant à une valeur X minimale, une valeur Y minimale, et une largeur et hauteur, lesquelles sont habituellement positives.

Un objet `SVGRect` peut être marqué en lecture seule, ce qui signifie que les tentatives de modification sur cet objet entraîneront un lancement d'exception.

### Vue d'ensemble de l'interface

|  |  |
| --- | --- |
| Implémente aussi | *Aucune* |
| Méthodes | *Aucune* |
| Propriétés | * float `x`
* float `y`
* float `width`
* float `height`
 |
| Document normatif | SVG 1.1 (2nd Edition) |

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

| Nom | Type | Description |
| --- | --- | --- |
| `x` | float | La coordonnée *x* du rectangle, en unité utilisateur. |
| `y` | float | La coordonnée *y* du rectangle, en unité utilisateur. |
| `width` | float | La largeur *width* du rectangle, en unité utilisateur. |
| `height` | float | La hauteur *height* du rectangle, en unité utilisateur. |

**Exceptions à l'affectation :** une `DOMException` avec le code `NO_MODIFICATION_ALLOWED_ERR` est levée lors d'une tentative de modification d'un attribut en lecture-seule.

Méthodes
--------

L'interface `SVGRect` ne fournit pas de méthode spécifique.

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.
EventTarget
===========

`EventTarget` est une interface DOM implémentée par des objets qui peuvent recevoir des événements et peuvent avoir des écouteurs pour eux.

`Element`, `Document` et `Window` sont les cibles d'événements les plus fréquentes, mais d'autres objets peuvent également être des cibles d'événements. Par exemple `XMLHttpRequest`, `AudioNode`, `AudioContext` et autres.

De nombreuses cibles d'événements (y compris des éléments, des documents et des fenêtres) supporte également la définition de gestionnaires d'événements (en-US) via les propriétés et attributs `onevent`.

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

`EventTarget()`

Crée une nouvelle instance d'objet `EventTarget`.

Méthodes
--------

`EventTarget.addEventListener()`

Enregistre un gestionnaire d'événements d'un type d'événement spécifique sur `EventTarget`.

`EventTarget.removeEventListener()`

Supprime un écouteur d'événement de `EventTarget`.

`EventTarget.dispatchEvent()`

Envoie un événement à cet `EventTarget`.

### Méthodes supplémentaires dans la base de code Chrome de Mozilla

Mozilla inclut quelques extensions à utiliser par les cibles d'événements implémentées par JS pour implémenter les propriétés `onevent`.

Voir aussi liaisons WebIDL.

* `void setEventHandler(DOMString type, EventHandler handler)` 
Non-standard
* `EventHandler getEventHandler(DOMString type)` 
Non-standard
Exemple
-------

### Implémentation simple d'EventTarget


```js
const EventTarget = function () {
  this.listeners = {};
};

EventTarget.prototype.listeners = null;
EventTarget.prototype.addEventListener = function (type, callback) {
  if (!(type in this.listeners)) {
    this.listeners[type] = [];
  }
  this.listeners[type].push(callback);
};

EventTarget.prototype.removeEventListener = function (type, callback) {
  if (!(type in this.listeners)) {
    return;
  }
  const stack = this.listeners[type];
  for (let i = 0, l = stack.length; i < l; i++) {
    if (stack[i] === callback) {
      stack.splice(i, 1);
      return;
    }
  }
};

EventTarget.prototype.dispatchEvent = function (event) {
  if (!(event.type in this.listeners)) {
    return true;
  }
  const stack = this.listeners[event.type].slice();

  for (let i = 0, l = stack.length; i < l; i++) {
    stack[i].call(this, event);
  }
  return !event.defaultPrevented;
};
```

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

| Specification |
| --- |
| DOM Standard # interface-eventtarget |

Compatiblité des navigateurs
----------------------------

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

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

* Référence d'événement (en-US) - les événements disponibles sur la plateforme.
* Guide du développeur d'événements
* `Event` interface
CSSValueList
============

L'interface **`CSSValueList`** dérive de l'interface `CSSValue` et fournit l'abstraction d'une collection ordonnée de valeurs CSS.

Certaines propriétés autorisent une liste vide dans leur syntaxe. Dans ce cas, ces propriétés prennent l'identifiant `none`. Ainsi, une liste vide signifie que la propriété a une valeur `none` (*aucune valeur*).

Les éléments dans `CSSValueList` sont accessibles par un index integral commençant à 0.

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

*Hérite des propriétés de son parent `CSSValue`*.

`CSSValueList.length` (en-US) Lecture seule 

Un `unsigned long` représentant le nombre de `CSSValues` (*valeurs CSS*) dans la liste.

Méthodes
--------

`CSSValueList.item()` (en-US)

Cette méthode est utilisée pour récupérer une `CSSValue` *(valeur CSS*) par index ordinal. L'ordre dans cette collection représente l'ordre des valeurs dans la propriété de style CSS. Si index est supérieur ou égal au nombre de valeurs de la liste, elle renvoie `null`.

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

#### No specification found

No specification data found for `api.CSSValueList`.  
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)
* `CSSValue`
WebGLFramebuffer
================

L'interface **WebGL Framebuffer** fait partie de l'API WebGL et représente une collection de tampons servant de destination de rendu.

Description
-----------

L'objet `WebGLFramebuffer` ne définit aucune méthode ou propriété en propre, et son contenu n'est pas directement accessible. Lorsque vous travaillez avec des objets `WebGLFramebuffer`, les méthodes suivantes du `WebGLRenderingContext` sont utiles :

* `WebGLRenderingContext.bindFramebuffer()` (en-US)
* `WebGLRenderingContext.createFramebuffer()` (en-US)
* `WebGLRenderingContext.deleteFramebuffer()` (en-US)
* `WebGLRenderingContext.isFramebuffer()` (en-US)
Exemples
--------

### Création d'un tampon d'image


```js
var canevas = document.getElementById("canevas");
var gl = canevas.getContext("webgl");
var tampon = gl.createFramebuffer();
```

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

| Specification |
| --- |
| WebGL Specification # 5.5 |

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

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

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

* `WebGLRenderingContext.bindFramebuffer()` (en-US)
* `WebGLRenderingContext.createFramebuffer()` (en-US)
* `WebGLRenderingContext.deleteFramebuffer()` (en-US)
* `WebGLRenderingContext.isFramebuffer()` (en-US)
* Autres tampon : `WebGLBuffer`, `WebGLRenderbuffer` (en-US)
SVGRectElement
==============

L'interface `SVGRectElement` fournit un accès aux propriétés et aux méthodes de l'élément `<rect>`.

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

*Cette interface hérite aussi des propriétés de* *`SVGGeometryElement` (en-US).*

`SVGRectElement.x` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `x` de l'élément `<rect>` donné.

`SVGRectElement.x` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `x` de l'élément `<rect>` donné.

`SVGRectElement.y` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `y (en-US)` de l'élément `<rect>` donné.

`SVGRectElement.width` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `width` de l'élément `<rect>` donné.

`SVGRectElement.height` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `height` de l'élément `<rect>` donné.

`SVGRectElement.rx` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `rx (en-US)` de l'élément `<rect>` donné.

`SVGRectElement.ry` Lecture seule 

Retourne un `SVGAnimatedLength` (en-US) correspondant à l'attribut `ry (en-US)` de l'élément `<rect>` donné.

Méthode
-------

*Cette interface n'implémente pas de méthodes spécifiques mais elle hérite des méthodes parentes de `SVGGeometryElement` (en-US).*

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

| Specification |
| --- |
| Scalable Vector Graphics (SVG) 2 # InterfaceSVGRectElement |

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

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

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

* `<rect>`
VRDisplayCapabilities
=====================

**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 **`VRDisplayCapabilities`** de WebVR API décrit les capacités d'un appareil `VRDisplay` (en-US) — ses fonctionalités peuvent être utilisée pour tester les capacités de l'appareil, par exemple il peut retourner de l'information sur la position.

Cet interface est accessible à partir de la propriété `VRDisplay.capabilities` (en-US).

Properties
----------

`VRDisplayCapabilities.canPresent` (en-US) Lecture seule 

Retourne un objet `Boolean` (en-US) qui décrit si l'écran RV est capable de présenter du contenu (e.g. en utilisant un visiocasque).

`VRDisplayCapabilities.hasExternalDisplay` (en-US) Lecture seule 

Retourne un objet `Boolean` (en-US) indiquant si l'écran RV est séparé de l'écran primaire de l'appareil.

`VRDisplayCapabilities.hasOrientation` (en-US) Lecture seule 

Retourne un objet `Boolean` (en-US) indiquant si l'écran RV peut suivre le mouvement de l'appareil et retourne de l'information sur l'orientation.

`VRDisplayCapabilities.hasPosition` (en-US) Lecture seule 

Retourne un objet `Boolean` (en-US) indiquant si l'écran RV peut suivre le mouvement de l'appareil et retourne de l'information sur l'orientation.

`VRDisplayCapabilities.maxLayers` (en-US) Lecture seule 

Retourne un nombre indiquant le nombre maximal de `VRLayer` (en-US)s que l'écran RV peut présenter en même temps (e.g. la longueur maximale du tableau que `Display.requestPresent()` peut accepter.)

Exemples
--------

TBD.

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

#### No specification found

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

L'interface `OscillatorNode` représente un signal périodique, une sinusoïde par exemple. C'est un module de traitement audio `AudioNode` qui crée un signal sinusoïdal à une fréquence donnée — c'est-à-dire génère une tonalité constante.

On crée un `OscillatorNode` en utilisant la méthode `AudioContext.createOscillator` (en-US). Il a toujours exactement une sortie, et aucune entrée. Ses propriétés par défaut (voir `AudioNode` pour la définition) sont :

* Nombre d'entrées : `0`
* Nombre de sorties : `1`
* Mode de calcul des canaux : `max`
* Nombre de canaux : `2` (propriété ignorée dans le mode de calcul par défaut)
* Interprétation des canaux : `speakers`
Propriétés
----------

*Hérite des propriétés de ses parents, `AudioNode`*.

`OscillatorNode.frequency` (en-US)

`AudioParam` de type a-rate représentant la fréquence d'oscillation en Hertz (la propriété frequency est en lecture seule, mais sa sous-propriété value ne l'est pas).

`OscillatorNode.detune` (en-US)

`AudioParam` de type a-rate représentant le désaccordage de l' oscillation exprimé en cents (la propriété detune est en lecture seule, mais sa sous-propriété value ne l'est pas).

`OscillatorNode.type` (en-US)

Chaîne de caractères indiquant la forme de l'onde générée. Différentes ondes produisent différentes tonalités. Les valeurs standard sont `"sine"`, `"square"`, `"sawtooth"`, `"triangle"` et `"custom"`. La valeur par défault is `"sine"`. `custom` permet d'utiliser une `PeriodicWave` pour décrire une forme d'onde personnalisée.

Méthodes
--------

*Hérite des méthodes de ses parents, `AudioNode`*.

`OscillatorNode.start()` (en-US)

Cette méthode déclenche la lecture du son.

`OscillatorNode.stop()` (en-US)

Cette méthode interrompt la lecture du son.

`OscillatorNode.setPeriodicWave()` (en-US)

Cette méthode définit une `PeriodicWave` qui peut être utilisée pour donner sa forme à la sortie de l'oscillateur, quand on utilise l'attribut `type = "custom"`. Elle remplace la méthode devenue obsolète `OscillatorNode.setWaveTable`.

Event handlers
--------------

`OscillatorNode.onended` (en-US)

Propriété utilisée pour assigner un gestionnaire d'évènement à l'évènement `ended`, qui est émis une fois que la lecture du son est terminée.

Exemples
--------

L'exemple suivant montre une utilisation basique d'un `AudioContext` pour créer un `OscillatorNode`. Pour un exemple appliqué, jetez un œil à notre démo « *Violent Theremin* » (voir `app.js` pour l'intégralité du code).


```js
// crée un contexteaudio
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();

// create Oscillator node
var oscillator = contexteAudio.createOscillator();
oscillator.connect(contexteAudio.destination);
oscillator.type = "square";
oscillator.frequency.value = 440; // valeur en hertz

oscillator.start();
```

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

| Specification |
| --- |
| Web Audio API # OscillatorNode |

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

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

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

* Utiliser la Web Audio API (en-US)
XPathExpression
===============

Une `XPathExpression` est une requête de XPath compilé renvoyée par `document.createExpression()`. Elle a une méthode `evaluate()` qui peut être utilisée pour exécuter le XPath compilé.

Méthodes
--------

* evaluate (`contextNode`, `type`, `result`) - fournit un noeud / document contextuel, une constante `XPathResult` (en-US) et `XPathResult` pour stocker la requête ou null pour renvoyer un nouveau XPathResult.
* evaluateWithContext (`contextNode`, `contextPosition`, `contextSize`, `type`, `result`) - fournit un noeud / document, une position et une taille contextuels, une constante `XPathResult` et un `XPathResult` pour stocker la requête ou null pour renvoyer un nouveau XPathResult.