recursal/MDN huggingface dataset:
Selection.type
==============

**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é en lecture simple **`type`** de l'interface `Selection` retourne un `DOMString` décrivant le type de la sélection courante.

Syntaxe
-------


```js
value = sel.type;
```

### Value

Une `DOMString` décrivant le type de la sélection courante. Les valeurs possibles sont :

* `None`: Aucune sélection courante.
* `Caret`: La sélection est réduite (le curseur est dans un texte mais il n'y a pas de plage sélectionnée).
* `Range`: Une plage est sélectionnnée.
Exemple
-------

Dans cet exemple le gestionnaire d'évènemenet est activé à chaque changement de la sélection. `console.log(selection.type)` retourne `Caret` ou `Range` selon que le curseur est sur un simple caractère ou qu'une plage est sélectionée.


```js
var selection;

document.onselectionchange = function () {
  console.log("New selection made");
  selection = document.getSelection();
  console.log(selection.type);
};
```

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

| Specification |
| --- |
| Selection API # dom-selection-type |

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

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

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

* `Selection`
Fonctions et classes disponibles dans les web workers
=====================================================

En plus de l'ensemble des fonctions standard JavaScript (telles que `String`, `Array`, `Object`, `JSON`, etc.), des fonctions du DOM sont disponibles pour les *workers*. Cet article en fournit la liste.

Contextes et fonctions des relatifs aux *workers*
-------------------------------------------------

**Les *workers* s'exécutent dans un contexte global différent de celui de la fenêtre courante !** Bien que `Window` ne soit pas directement accessible depuis les *workers*, de nombreuses méthodes en commun sont définies sur un mixin partagé (`WindowOrWorkerGlobalScope`), et disponibles pour les *workers* via les contextes dérivés de `WorkerGlobalScope` :

* `DedicatedWorkerGlobalScope` pour les *workers* dédiés
* `SharedWorkerGlobalScope` (en-US) pour les *workers* partagés
* `ServiceWorkerGlobalScope` (en-US) pour les *service workers*

Certaines des fonctions qui sont accessibles depuis tous les types de *service workers* et depuis le fil d'exécution principal (via `WindowOrWorkerGlobalScope`) sont :

* `atob()`
* `btoa()`
* `clearInterval()`
* `clearTimeout()` (en-US)
* `dump()` 
Non-standard
* `setInterval()` (en-US)
* `setTimeout()`

Les fonctions suivantes sont **uniquement** disponibles pour les pour les *workers* :

* `WorkerGlobalScope.importScripts()` (pour tous les *workers*),
* `DedicatedWorkerGlobalScope.postMessage` (en-US) (*workers* dédiés uniquement).
Les API web disponibles pour les *workers*
------------------------------------------

**Note :** Si une API listée ici est prise en charge par une plateforme donnée pour une version donnée, on peut généralement partir du principe que l'API fonctionnera pour les *web workers*.

Les API web suivantes sont disponibles pour les *workers* :

* API *Broadcast Channel*
* API Cache
* API *Channel Messaging* (en-US)
* API Console
* `Crypto`
* `CustomEvent`
* Évènements émis par le serveur
* `Fetch`
* `FileReader`
* `FileReaderSync` (en-US) (fonctionne uniquement dans les *workers*)
* `FormData`
* `ImageData`
* `IndexedDB`
* API *Network Information*
* `Notifications`
* `Performance`
* `PerformanceEntry`
* `PerformanceMeasure`
* `PerformanceMark`
* `PerformanceObserver`
* `PerformanceResourceTiming`
* `Promise`
* `ServiceWorkerRegistration` (en-US)
* `TextEncoder` et `TextDecoder` (en-US)
* `URL`
* WebGL avec `OffscreenCanvas` (activé via une préférence `gfx.offscreencanvas.enabled`)
* `WebSocket`
* `XMLHttpRequest` (bien que les attributs `responseXML` et `channel` vaillent toujours `null`).

Les *workers* peuvent également engendrer d'autres *workers* et les API suivantes sont donc disponibles :

* `Worker`
* `WorkerGlobalScope`
* `WorkerLocation`
* `WorkerNavigator` (en-US)
Voir aussi
----------

* Utiliser les *web workers*
* `Worker`
FileReader.readAsBinaryString()
===============================

La méthode `readAsArrayBuffer()` de l'interface `FileReader` permet de lire un `Blob` ou un `File` (*fichier*). Quand l'opération est finie, l'attribut `readyState` (en-US) prend la valeur `"DONE"` (*terminé*), et l'événement `loadend` (en-US) est levé.

L'attribut `result` (en-US) contient alors les données binaires brutes lues.

Notez que cette méthode fût enlevée de l'API, mais réintroduite pour des raison de compatibilité ascendante.

L'utilisation de `FileReader.readAsArrayBuffer()` est recomandée.

Syntaxe
-------


```js
instanceOfFileReader.readAsBinaryString(blob);
```

### Paramètres

`blob`

Le `Blob` or `File` devant être lu.

Exemple
-------


```js
var canvas = document.createElement("canvas");
var height = 200;
var width = 200;

canvas.width = width;
canvas.height = height;

var ctx = canvas.getContext("2d");

ctx.strokeStyle = "#090";
ctx.beginPath();
ctx.arc(width / 2, height / 2, width / 2 - width / 10, 0, Math.PI \* 2);
ctx.stroke();

canvas.toBlob(function (blob) {
  var reader = new FileReader();

  reader.onload = function () {
    console.log(reader.result);
  };

  reader.readAsBinaryString(blob);
});
```

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

| Specification |
| --- |
| File API # readAsBinaryString |

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

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

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

* `FileReader`
FileReader.readAsText()
=======================

La méthode `readAsText` est utilisée pour lire le contenu du `Blob` ou `File` spécifié en paramètre. Lorsque la lecture est terminée, l'état `readyState` (en-US) passe à `DONE`, l'événement `loadend` (en-US) est lancé, et l'attribut `result` (en-US) contient le contenu du fichier sous forme de chaîne de caractères.

Syntaxe
-------


```js
instanceOfFileReader.readAsText(blob[, encoding]);
```

### Parameters

`blob`

Le `Blob` ou `File` qui doit être lu.

encoding Facultatif

Une chaîne de caractères spécifiant l'encodage utilisé dans les données de retour. Par défaut, UTF-8 est utilisé lorsque le paramètre n'est pas spécifié.

Exemples
--------


```js
var selectedFile = document.getElementById("input").files[0];
var content = document.getElementById("content");
var reader = new FileReader();
reader.onload = function (event) {
  content.innerHTML = reader.result;
};
reader.readAsText(selectedFile);
```

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

| Specification |
| --- |
| File API # readAsDataText |

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

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

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

* `FileReader`
FileReader.readAsDataURL()
==========================

La méthode **`FileReader.readAsDataURL()`** est utilisée afin de lire le contenu d'un blob (`Blob`) ou d'un fichier (`File`). Lorsque l'opération de lecture est terminée, `readyState` (en-US) prend la valeur `DONE`, et l'évènement `loadend` est déclenché. À partir de ce moment, la propriété `result` (en-US) contient les données sous la forme d'une URL de données qui représente les données du fichier sous la forme d'une chaîne de caractères encodée en base64.

**Note :** Pour un blob, `result` (en-US) ne peut pas être décodé en base64 sans avoir d'abord retiré la déclaration d'URL de données qui précède les données encodées. Pour récupérer uniquement la chaîne encodée en base 64, il faut d'abord supprimer le préfixe `data:*/*;base64,` du résultat.

Syntaxe
-------


```js
readAsDataURL(blob);
```

### Paramètres

`blob`

L'objet `Blob` ou `File` qu'on souhaite lire.

### Valeur de retour

Aucune (`undefined`).

Exemples
--------

### Exemple simple

#### HTML


```html
<input type="file" onchange="previewFile()" /><br />
<img src="" height="200" alt="Prévisualisation de l'image…" />
```


#### JavaScript


```js
function previewFile() {
  const preview = document.querySelector("img");
  const file = document.querySelector("input[type=file]").files[0];
  const reader = new FileReader();

  reader.addEventListener(
    "load",
    () => {
      // on convertit l'image en une chaîne de caractères base64
      preview.src = reader.result;
    },
    false,
  );

  if (file) {
    reader.readAsDataURL(file);
  }
}
```


#### Résultat

### Lire plusieurs fichiers

#### HTML


```html
<input id="browse" type="file" onchange="previewFiles()" multiple />
<div id="preview"></div>
```


#### JavaScript


```js
function previewFiles() {
  const preview = document.querySelector("#preview");
  const files = document.querySelector("input[type=file]").files;

  function readAndPreview(file) {
    // On s'assure que `file.name` termine par
    // une des extensions souhaitées
    if (/\.(jpe?g|png|gif)$/i.test(file.name)) {
      const reader = new FileReader();

      reader.addEventListener(
        "load",
        () => {
          const image = new Image();
          image.height = 100;
          image.title = file.name;
          image.src = this.result;
          preview.appendChild(image);
        },
        false,
      );

      reader.readAsDataURL(file);
    }
  }

  if (files) {
    Array.prototype.forEach.call(files, readAndPreview);
  }
}
```


**Note :** Le constructeur `FileReader()` n'était pas pris en charge pour les versions d'Internet Explorer antérieures à IE 10. Vous pouvez voir notre exemple de solution compatible entre les navigateurs pour la prévisualisation d'image, ainsi que cet autre exemple encore plus puissant.

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

| Specification |
| --- |
| File API # readAsDataURL |

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

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

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

* `FileReader`
* `URL.createObjectURL()`
FileReader()
============

**`FileReader()`** est un constructeur qui permet de créer un nouvel objet FileReader.

Pour plus de details à propos de `FileReader`, visiter Using files from web applications.

Syntaxe
-------


```js
var reader = new FileReader();
```

### Paramèteres

Aucun.

Exemple
-------

L'extrait de code ci-dessous montre la création d'un objet `FileReader` en utilisant le constructeur `FileReader()` ainsi qu'une utilisation subséquente de cet objet:


```js
function printFile(file) {
  var reader = new FileReader();
  reader.onload = function (evt) {
    console.log(evt.target.result);
  };
  reader.readAsText(file);
}
```

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

| Specification |
| --- |
| File API # filereaderConstrctr |

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

* Using files from web applications
FileReader.readAsArrayBuffer()
==============================

La méthode **`readAsArrayBuffer()`** de l'interface `FileReader` permet de lire un `Blob` ou un `File` (*fichier*). Quand l'opération est finie, l'attribut `readyState` (en-US) prend la valeur `"DONE"` (*terminé*) à savoir `2`, et l'événement `loadend` (en-US) est levé. L'attribut `result` (en-US) (*résultat*) contient alors les données lues sous la forme d'un objet `ArrayBuffer`.

**Note :** La méthode `Blob.arrayBuffer()` (en-US) est une nouvelle API basée sur les promesses permettant de lire un fichier.

Syntaxe
-------


```js
instanceOfFileReader.readAsArrayBuffer(blob);
```

### Paramètres

`blob`

Le `Blob` ou le `File` (*fichier*) devant être lu.

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

| Specification |
| --- |
| File API # readAsArrayBuffer |

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

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

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

* `FileReader`
audioprocess
============

L'événement **audioprocess** est déclenché lorsqu'un tampon d'entrée d'une API Web audio `ScriptProcessorNode` (en-US) est prêt à être traité.

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

Interface
`AudioProcessingEvent`
Propagation

?

Annulable

?

Cible
`ScriptProcessorNode` (en-US)
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 cible dans l'arbre du DOM). |
| `type` Lecture seule  | `DOMString` | Le type de l'événement. |
| `bubbles` Lecture seule  | `boolean` | Est-ce que l'événement se propage? |
| `cancelable` Lecture seule  | `boolean` | Est-il possible d'annuler l'événement? |
| `playbackTime` Lecture seule  | `double` | 
 Le moment auquel le son sera joué tel que défini par le temps de
 `AudioContext.currentTime` (en-US).
  |
| `inputBuffer` Lecture seule  | `AudioBuffer` | 
 Le tampon contenant les données audio d'entrée devant être traité. Le
 nombre de canaux est défini par le paramètre
 `*numberOfInputChannels* de la méthode` `AudioContext.createScriptProcessor()` (en-US).
 Noter que le *`AudioBuffer`* retourné est seulement valide
 dans la portée de la fonction *`onaudioprocess.`*
 |
| `outputBuffer` Lecture seule  | `AudioBuffer` | 
 Le tampon dans lequel doit être écrit les données audio de sortie. Le
 nombre de canaux est défini par le paramètre
 `*numberOfOutputChannels* de la méthode` `AudioContext.createScriptProcessor()` (en-US).
 Noter que `le *AudioBuffer*` `retourné` est seulement valide dans la portée de la
 fonction *`onaudioprocess.`*
 |

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

#### No specification found

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

* Web Audio API (en-US)
Request.credentials
===================

La propriété en lecture seule **`credentials`**, de l'interface `Request`, indique si l'agent utilisateur doit envoyer des cookies de l'autre domaine dans le cas de requêtes CORS. Ceci est similaire au flag `withCredentials` de XHR, mais peut prendre trois valeurs possibles (contre deux pour XHR) :

* `omit` : ne jamais envoyer de cookies.
* `same-origin` : envoyer les identifiants utilisateur (cookies, authentification HTTP simple, etc.) si l'URL a la même origine que le script. **C'est la valeur par défaut.**
* `include` : toujours envoyer les identifiants utilisateur (cookies, authentification HTTP simple, etc.) même lorsque l'origine de l'URL est différente.
Syntaxe
-------


```js
var myCred = request.credentials;
```

### Valeur

Une valeur `RequestCredentials` qui représente les informations d'authentification utilisées pour cette transaction.

Exemples
--------

Dans le morceau de code suivant, on crée une nouvelle requête en utilisant le constructeur `Request.Request()` (pour un fichier image dans le même dossier que le script), puis on enregistre les identifiants de la requête dans une variable:


```js
var myRequest = new Request("flowers.jpg");
var myCred = myRequest.credentials; // renvoie "same-origin" par défaut
```

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

| Specification |
| --- |
| Fetch Standard # ref-for-dom-request-credentials② |

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

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

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

* L'API ServiceWorker (en-US)
* Contrôle d'accès HTTP avec les origines (CORS)
* HTTP
Request.mode
============

**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é **`mode`** (en lecture seule) de l'interface `Request` contient le mode de la requête (e.g., `cors`, `no-cors`, `cors-with-forced-preflight`, `same-origin`, or `navigate`.) Ceci est utilisé pour déterminer si les requêtes différentes de l'origine (cross-origin) mèneront à des réponses valides, et quelles propriétés de la réponse seront lisibles:

* `same-origin` — Avec ce mode défini, si la requête est faite vers une autre origine, le résultat sera une erreur. Vous pouvez utiliser ceci afin de vous assurer que la requête sera toujours faites vers votre origine.
* `no-cors` — Prévient la méthode d'une utilisation autre que `HEAD`, `GET` ou `POST`. Si un ServiceWorkers interceptait ces requêtes, il ne pourrait pas ajouter ou réécrire ces en-têtes excepté pour ceci. De plus, JavaScript ne peut accéder à aucune propriété de la `Response`. Cela vous assure que les ServiceWorkers n'affecteront pas la sémantique du Web et prévient pour des raisons de sécurité et de confidentialité pouvant mener à la fuite de données à travers les domaines.
* `cors` — Permet les requêtes cross-origin pour, par exemple, accéder à diverses APIs fournies par de tierces parties. Ces derniers sont censés adhérer au protocole CORS. Seul un jeu limité d'en-têtes est exposé dans la `Response`, mais le corps (body) est lisible.
* `navigate` — Un mode pour supporter la navigation. La valeur `navigate` est destinée à être utilisée seulement par la navigation HTML. Une requête navigate est créée seulement lorsqu'on navigue entre des documents.
Syntaxe
-------


```js
var myMode = request.mode;
```

### Valeur

Une valeur `RequestMode`.

Exemple
-------

Dans le bout de code suivant, nous créons une nouvelle requête en utilisant le constructeur `Request.Request()` (pour une image située dans le même répertoire que le script), puis on stocke le mode de la requête dans une variable:


```js
var myRequest = new Request("flowers.jpg");
var myMode = myRequest.mode; // returns "cors" by default
```

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

| Specification |
| --- |
| Fetch Standard # ref-for-dom-request-mode② |

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

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

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

* L'API ServiceWorker (en-US)
* HTTP access control (CORS)
* HTTP
CSSStyleDeclaration.cssText
===========================

A ne pas confondre avec la règle de style de feuille de style `CSSRule.cssText` (en-US).

**cssText** retourne ou définit seulement le texte de la déclaration de style **inline** de l'élément. Pour pouvoir définir dynamiquement une règle d'une **stylesheet**, voir Utilisation d'informations de mise en forme dynamiques. (en-US)

Syntaxe
-------


```js
chaine = elem.style.cssText;
```

Exemple
-------


```html
<span id="s1" style="color: red;"> Du texte </span>

<script>
 var elem = document.getElementById("s1");
 alert(elem.style.cssText); // "color: red;"
</script>
```

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

* DOM Level 2 Style CSS - Interface CSSStyleDeclaration (introduced in DOM Level 2)
PerformanceTiming.domainLookupStart
===================================

**Attention :** Cette interface est dépréciée dans la spécification Navigation Timing Level 2. Veuillez utiliser l'interface `PerformanceNavigationTiming` à la place.

L'ancienne propriété en lecture seule **`domainLookupStart`** retourne un `unsigned long long` représentant le moment, en millisecondes depuis l'époque UNIX, où la recherche de domaine commence. Si une connexion persistante est utilisée, ou si les informations sont stockées dans un cache ou une ressource locale, la valeur sera la même que `PerformanceTiming.fetchStart`.

Syntaxe
-------


```js
let time = performanceTiming.domainLookupStart;
```

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

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancetiming-domainlookupstart |

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

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

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

* L'interface `PerformanceTiming` à laquelle elle appartient.
PerformanceTiming.loadEventEnd
==============================

**Attention :** Cette interface est dépréciée dans la spécification Navigation Timing Level 2. Veuillez utiliser la propriété `PerformanceNavigationTiming.loadEventEnd` de l'interface `PerformanceNavigationTiming` à la place.

L'ancienne propriété en lecture seule **`loadEventEnd`** retourne un `unsigned long long` représentant le moment, en millisecondes depuis l'époque UNIX, où le gestionnaire d'événement `load` s'est terminé, c'est-à-dire lorsque l'événement de chargement est terminé. Si cet événement n'a pas encore été envoyé, ou n'est pas encore terminé, il retourne `0`.

Syntaxe
-------


```js
let time = performanceTiming.loadEventEnd;
```

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

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancetiming-loadeventend |

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

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

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

* L'interface `PerformanceTiming` à laquelle elle appartient.
PerformanceTiming.domInteractive
================================

**Attention :** Cette interface est dépréciée dans la spécification Navigation Timing Level 2. Veuillez utiliser la propriété `PerformanceNavigationTiming.domInteractive` de l'interface `PerformanceNavigationTiming` à la place.

L'ancienne propriété en lecture seule **`domInteractive`** retourne un `unsigned long long` représentant le moment, en millisecondes depuis l'époque UNIX, où le parseur a terminé son travail sur le document principal, c'est-à-dire lorsque son `Document.readyState` passe à `"interactive"` et que l'événement `readystatechange` correspondant est lancé.

Cette propriété peut être utilisée pour mesurer la vitesse de chargement des sites Web que les utilisateurs *ressentent*. Néanmoins, il y a quelques mises en garde qui se produisent si des scripts bloquent le rendu et ne sont pas chargés de manière asynchrone ou avec des polices Web personnalisées. Vérifiez si vous êtes dans l'un de ces cas avant d'utiliser cette propriété comme un proxy pour l'expérience utilisateur de la vitesse de chargement d'un site Web.

Syntaxe
-------


```js
let time = performanceTiming.domInteractive;
```

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

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancetiming-dominteractive |

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

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

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

* L'interface `PerformanceTiming` à laquelle elle appartient.
* L'article « domInteractive: is it? really? (en) » explique quand vous pouvez utiliser cette propriété comme un proxy pour l'expérience utilisateur du chargement d'un site Web.
PerformanceTiming.redirectStart
===============================

**Attention :** Cette interface est dépréciée dans la spécification Navigation Timing Level 2. Veuillez utiliser l'interface `PerformanceNavigationTiming` à la place.

L'ancienne propriété en lecture seule **`redirectStart`** retourne un `unsigned long long` représentant le moment, en millisecondes depuis l'époque UNIX, où la première redirection HTTP commence. S'il n'y a pas de redirection, ou si l'une des redirections n'est pas de la même origine, la valeur renvoyée est `0`.

Syntaxe
-------


```js
let time = performanceTiming.redirectStart;
```

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

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancetiming-redirectstart |

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

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

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

* L'interface `PerformanceTiming` à laquelle elle appartient.