recursal/MDN huggingface dataset:
IntersectionObserverEntry.target
================================

La propriété en lecture seule **`target`**, rattachée à l'interface `IntersectionObserverEntry` indique l'élément ciblé pour lequel la proportion d'intersection avec la racine d'intersection a changé.

Valeur
------

La propriété `target` de `IntersectionObserverEntry` indique l'élément précédemment ciblé en appelant `IntersectionObserver.observe()` pour lequel un changement d'intersection avec la racine a eu lieu.

Exemples
--------

Dans cet exemple simple, chaque élément ciblé voit son opacité paramétrée avec la valeur de `intersectionRatio` (en-US).


```js
function intersectionCallback(entries) {
  entries.forEach((entry) => {
    entry.target.opacity = entry.intersectionRatio;
  });
}
```


Pour un exemple plus concret, voir Gérer les changements d'intersection (en-US).

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

| Specification |
| --- |
| Intersection Observer # dom-intersectionobserverentry-target |

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

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

**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 seule **`offsetX`** de l'interface `MouseEvent` fournit le décalage sur l'axe X du pointeur de la souris entre cet évènement et la bordure de la marge intérieure du noeud cible.

Syntaxe
-------


```js
var xOffset = instanceOfMouseEvent.offsetX;
```

### Valeur renvoyée

Un nombre à virgule flottante double précision `double`. Les premières versions de la spécification la définissaient comme un nombre entier. Pour plus de détails, voir la section Compatibilité des navigateurs.

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

| Specification |
| --- |
| CSSOM View Module # dom-mouseevent-offsetx |

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

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

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

* `MouseEvent`
MouseEvent.offsetY
==================

**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 seule **`offsetY`** de l'interface `MouseEvent` fournit le décalage sur l'axe Y du pointeur de la souris entre cet évènement et la bordure de la marge intérieure du noeud cible.

Syntaxe
-------


```js
var yOffset = instanceOfMouseEvent.offsetY;
```

### Valeur retournée

Un nombre à virgule flottante double précision `double`. Les premières versions de la spécification la définissaient comme un nombre entier. Pour plus de détails, voir la section Commpatibilité des navigateurs.

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

| Specification |
| --- |
| CSSOM View Module # dom-mouseevent-offsety |

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

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

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

* `MouseEvent`
FeaturePolicy.getAllowlistForFeature()
======================================

**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 méthode **`getAllowlistForFeature()`** de `FeaturePolicy` permet d'obtenir la liste des permissions associée à une fonctionnalité pour ce Feature Policy.

Syntaxe
-------


```js
const listePermissions = FeaturePolicy.getAllowlistForFeature(<fonctionnalité>)
```

### Parameter

#### Nom de fonctionnalité

Un nom de fonctionnalité doit être fourni.

### Valeur de retour

Une liste de permissions pour la fonctionnalité demandée est retournée.

Erreurs
-------

La fonction jettera un avertissement si la directive de Feature Policy demandée est inconnue. Toutefois, elle retournera aussi un tableau vide, indiquant que l'utilisation de cette fonctionnalité n'est permise pour aucune origine.

Exemple
-------

Cet exemple affiche toutes les origines à qui la directive Feature Policy permet d'utiliser l'API Camera (appareil photo). Notez que l'API Camera pourrait être restreinte par l'API Permissions si l'utilisateur n'a pas encore accordé la permission.


```js
// D'abord, récupère l'objet Feature Policy
const featurePolicy = document.featurePolicy;

// Puis demande la liste pour la fonctionnalité "camera"
const listePermissions = featurePolicy.getAllowlistForFeature("camera");

for (const origine of listePermissions) console.log(origine);
```

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

#### No specification found

No specification data found for `api.FeaturePolicy.getAllowlistForFeature`.  
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.
FeaturePolicy.allowedFeatures()
===============================

**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 méthode **`allowedFeatures()`** de l'interface `FeaturePolicy` retourne la liste des noms des directives de fonctionnalités permises par ce Feature Policy. Elle permet l'introspection de directives spécifiques du Feature Policy sur lequel la méthode est appelée. Ainsi, la méthode `allowedFeatures()` retourne un sous-ensemble de la liste des noms de directives retournée par `features()`.

Syntaxe
-------


```js
const permissions = FeaturePolicy.allowedFeatures();
```

### Paramètres

Aucun.

### Valeur de retour

Un tableau de chaines de caractères représentant les noms des directives Feature Policy dont l'utilisation de la fonctionnalité associée est permise par le Feature Policy sur laquel est appelée cette méthode.

Exemple
-------

L'exemple suivant affiche toutes les directives permises pour le présent document. Notez que ces fonctionnalités pourraient être restreintes par l'API Permissions, si l'utilisateur n'a pas encore accordé les droits correspondants.


```js
// D'abord, récupère l'objet Feature Policy
const featurePolicy = document.featurePolicy;

// Puis demande la liste des foncitonnalités permises
const permissions = featurePolicy.allowedFeatures();

for (const directive of permissions) console.log(directive);
```

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

#### No specification found

No specification data found for `api.FeaturePolicy.allowedFeatures`.  
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.
FeaturePolicy.allowsFeature()
=============================

**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 méthode **`allowsFeature()`** de l'interface `FeaturePolicy` permet l'introspection de directives du Feature Policy sur lequel la méthode est appelée. Elle retourne un `Boolean` valant `true` si et seulement si la fonctionnalité dont le nom de directive est fourni est permise dans le contexte spécifié (ou le contexte par défaut si aucun contexte n'est spécifié).

Syntaxe
-------


```js
const listePermissions = FeaturePolicy.allowsFeature(<nomDirective>)
```


ou


```js
const listePermissions = FeaturePolicy.allowsFeature(<nomDirective>, <origine>)
```

### Paramètres

#### `Nom de directive`

Le nom de la directive associée à une fonctionnalité.

#### `Origine` Facultatif

Une URL d'origine sur lequel vérifier la disponibilité de la fonctionnalité. Si omise, sa valeur par défaut est utilisée.

### Valeur de retour

Un `Boolean` valant `true` si et seulement si la fonctionnalité est permise.

Exemple
-------

Cet exemple demande au document s'il lui est permis par Feature Policy d'utiliser l'API Camera (appareil photo). Notez que l'API Camera pourrait être restreinte par l'API Permissions si l'utilisateur n'a pas encore accordé la permission.


```js
// D'abord, récupère le Feature Policy
const featurePolicy = document.featurePolicy;

// Demande si la fonctionnalité est disponible
const estPermise = featurePolicy.allowsFeature("camera");

if (estPermise) console.log("FP autorise l'appareil photo.");
else console.log("FP n'autorise pas l'appareil photo.");
```

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

#### No specification found

No specification data found for `api.FeaturePolicy.allowsFeature`.  
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.
FeaturePolicy.features()
========================

**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 méthode **`features()`** de l'interface `FeaturePolicy` retourne la liste des noms de directives de fonctionnalités supportées par l'agent utilisateur. Une fonctionnalité dont le nom apparait dans la liste pourrait n'être pas autorisée par le Feature Policy du contexte courant d'exécution ou n'être pas accessible à cause des permissions de l'utilisateur.

Syntaxe
-------


```js
const fonctionnalitésSupportées = FeaturePolicy.features();
```

### Paramètres

Aucun.

### Valeur de retour

Un tableau de chaines de caractères représentant les noms des directives Feature Policy dont la fonctionnalité associée est supportée par l'agent utilisateur.

Exemple
-------

Cet exemple affiche dans la console toutes les directives supportées par votre agent utilisateur :


```js
// Récupère l'objet Feature Policy
const featurePolicy = document.featurePolicy;

// Récupère la liste des noms de directives de Feature Policy dont les fonctionnalités sont supportées
const fonctionnalitésSupportées = featurePolicy.features();

// Affiche chaque directive dans la console
for (const directive of fonctionnalitésSupportées) console.log(directive);
```

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

#### No specification found

No specification data found for `api.FeaturePolicy.features`.  
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.
IDBObjectStore.transaction
==========================

La propriété **`transaction`** de l'interface `IDBObjectStore` renvoie la `transaction` à laquelle l'`accès` du magasin d'objet appartient.

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

Syntaxe
-------


```js
var myTransaction = objectStore.transaction;
```

Valeur
------

Une `transaction`.

Exemple
-------

Dans le code suivant, on ouvre une `connexion` à la base de donnée. Sur cette connexion on démarre une `transaction` en lecture/écriture pour avoir un `accès` au magasin d'objet `"toDoList"` dans lequel on `ajoute` un enregistrement.

La propriété **`transaction`** affiche la transaction à laquelle l'accès du magasin d'objet appartient.


```js
//Connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Connexion établie.</li>";

  //Affecte la connexion à la variable db.
  db = DBOpenRequest.result;

  // Exécutez la fonction addData () pour ajouter un enregistrement au magasin d'objet
  addData();
};
function addData() {
  // un nouvel objet prêt à être emmagasiné
  newItem = [
    {
      taskTitle: "Walk dog",
      hours: 19,
      minutes: 30,
      day: 24,
      month: "December",
      year: 2013,
      notified: "no",
    },
  ];

  // ouvre une transaction de lecture / écriture prête au traitement des données sur la connexion
  var transaction = db.transaction(["toDoList"], "readwrite");

  // en cas de succès de l'ouverture de la transaction
  transaction.oncomplete = function (event) {
    note.innerHTML +=
      "<li>Transaction complété : modification de la base de données terminée.</li>";
  };
  // en cas d'échec de l'ouverture de la transaction
  transaction.onerror = function (event) {
    note.innerHTML +=
      "<li>L'erreur: \"" +
      transaction.error +
      "\" c'est produite échec de la transaction.</li>";
  };

  // ouvre l'accès au un magasin "toDoList" de la transaction
  var objectStore = transaction.objectStore("toDoList");

  //->Affiche la transaction de l'accès du magasin d'objet
  console.log(objectStore.transaction);

  // Ajoute un enregistrement
  var objectStoreRequest = objectStore.add(newItem[0]);
  objectStoreRequest.onsuccess = function (event) {
    // signale l'ajout de l'enregistrement
    note.innerHTML += "<li>Enregistrement ajouté.</li>";
  };
}
```


**Note :** Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-transaction① |

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

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

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

* `Utiliser IndexedDB`
* `Débuter une connexion`
* `Utilisé les transactions`
* `Définir l'intervalle des clés`
* `Accès aux magasins d'objets`
* `Utiliser les curseur`
* Exemple de référence: To-do Notifications (view example live.)
IDBObjectStore.openKeyCursor()
==============================

La méthode **`openKeyCursor()`**, rattachée à l'interface `IDBObjectStore`, renvoie un objet `IDBRequest` dont le résultat sera un curseur (`IDBCursor`) qui pourra être utilisé afin de parcourir les enregistrements correspondants. Cette méthode est utilisée afin de parcourir les clés d'un magasin d'objets grâce à un curseur.

Afin de déterminer si le curseur a bien été ajouté, on pourra écouter l'évènement `success` sur le résultat de la méthode.

Syntaxe
-------


```js
var requete = objectStore.openKeyCursor(optionalKeyRange, optionalDirection);
```

### Paramètres

`optionalKeyRange`

L'intervalle de clés qu'on souhaite parcourir. Si une seule clé est fournie, l'intervalle constitué ne contiendra que cette clé. Si aucune valeur n'est passée en argument, le curseur produit parcourera tous les enregistrements du magasin d'objets.

`optionalDirection`

Un objet `IDBCursorDirection` qui indique la direction dans laquelle le curseur doit parcourir les évènements. La valeur par défaut est `"next"`.

### Valeur de retour

Un objet `IDBRequest` sur lequel seront déclenchés les différents évènements relatifs à cette opération.

### Exceptions

Cette méthode peut déclencher une exception `DOMException` ayant l'un des types suivants :

| Exception | Description |
| --- | --- |
| `InvalidStateError` | Le magasin d'objets (`IDBObjectStore` ou l'index (`IDBIndex`) a été supprimé. |
| `TransactionInactiveError` | La transaction associée au magasin d'objet (`IDBObjectStore`) est inactive. |
| `DataError` | La clé ou l'intervalle de clés indiqué est invalide. |

Exemples
--------

Dans le fragment de code suivant, on crée une transaction, on l'utilise sur un magasin d'objets donné puis on utilise le curseur pour parcourir tous les enregistrements du magasin d'objets :


```js
var transaction = db.transaction("name", "readonly");
var objectStore = transaction.objectStore("name");
var request = objectStore.openKeyCursor();
request.onsuccess = function (event) {
  var cursor = event.target.result;
  if (cursor) {
    // cursor.key contient la clé de l'enregistrement courant
    // à la différence de openCursor, il n'y a pas de cursor.value
    cursor.continue();
  } else {
    // Il n'y a plus d'autres résultats
  }
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-openkeycursor① |

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

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

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

* Utiliser IndexedDB
* Initier une connexion : `IDBDatabase`
* Utiliser les transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer et modifier les données : `IDBObjectStore`
* Utiliser les curseurs `IDBCursor`
* Exemple de référence : To-do Notifications (exemple *live*).
IDBObjectStore.clear()
======================

La méthode **`clear()`** de l'interface `IDBObjectStore` fait une `requête` pour vider le magasin d'objet `relié`.

Vider un magasin d'objet consiste à supprimer tous les enregistrements et les entrées des index de ce magasin d'objet.

**Note :** La méthode clear() ne remet pas à zero le compteur du génerateur de clé s'il y en à un.

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

Syntaxe
-------


```js
var request = objectStore.clear();
```

Renvoie
-------

Une `requête`.

Exceptions
----------

`ReadOnlyError`

Cette `exception` est levé si la transaction associé à cette requête est en `mode` lecture seule.

`TransactionInactiveError`

Cette `exception` est levé si la `transaction` de l'`accès` au magasin d'objet est inactive.

Exemple
-------

Dans le code suivant, on ouvre une `connexion` à la base de donnée. Sur cette connexion on démarre une `transaction` en lecture/écriture pour avoir un `accès` au magasin d'objet `"toDoList"` et le `vider`

La méthode **`clear()`** de l'accès au magasin d'objet fait une `requête` pour vider le magasin d'objet `toDoList`.


```js
//Connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Connexion établie.</li>";

  //Affecte la connexion à la variable db.
  db = DBOpenRequest.result;

  // Exécutez la fonction clearData () pour vider les données dans le magasin d'objet
  clearData();
};

function clearData() {
  // ouvre une transaction de lecture / écriture prête pour le nettoyage
  var transaction = db.transaction(["toDoList"], "readwrite");

  // en cas de succès de l'ouverture de la transaction
  transaction.oncomplete = function (event) {
    note.innerHTML +=
      "<li>Transaction complété : modification de la base de données terminée.</li>";
  };

  // en cas d'échec de l'ouverture de la transaction
  transaction.onerror = function (event) {
    note.innerHTML +=
      "<li>Transaction en échec à cause de l'erreur : " +
      transaction.error +
      "</li>";
  };

  // ouvre l'accès au un magasin "toDoList" de la transaction
  var objectStore = transaction.objectStore("toDoList");

  // Vide le magasin d'objet
  var objectStoreRequest = objectStore.clear();

  objectStoreRequest.onsuccess = function (event) {
    // rapporte le succès du nettoyage
    note.innerHTML += "<li>Enregistrements effacées.</li>";
  };
}
```


**Note :** Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-clear③ |

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

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

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

* `Utiliser IndexedDB`
* `Débuter une connexion`
* `Utilisé les transactions`
* `Définir l'intervalle des clés`
* `Accès aux magasins d'objets`
* `Utiliser les curseur`
* Exemple de référence: To-do Notifications (view example live.)
IDBObjectStore.openCursor()
===========================

La méthode **`openCursor()`**, rattachée à l'interface `IDBObjectStore`, renvoie un objet `IDBRequest` et, dans un *thread* séparé, renvoie un nouvel objet `IDBCursorWithValue` (en-US) qu'on peut utiliser pour parcourir un magasin d'objets avec un curseur.

Afin de déterminer si l'opération s'est déroulée correctement, on pourra surveiller l'évènement `success`.

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

Syntaxe
-------


```js
var requete = ObjectStore.openCursor(optionalKeyRange, optionalDirection);
```

### Paramètres

`range` Facultatif

Une clé ou un intervalle de clés (`IDBKeyRange`) qu'on souhaite parcourir. Si une seule clé est passée en argument, l'intervalle utilisé pour le curseur sera restreint à cette seule clé. Si aucune valeur n'est passée pour cet argument, l'intervalle utilisé pour le curseur englobera tous les enregistrements du magasin d'objets.

`direction` Facultatif

Un objet `IDBCursorDirection` qui indique la direction de parcours du curseur. La valeur par défaut est `"next"`.

### Valeur de retour

Un objet `IDBRequest` sur lequel seront déclenchés les évènements relatifs à l'opération.

### Exceptions

Cette méthode peut déclencher une exception `DOMException` ayant l'un des types suivants :

| Exception | Description |
| --- | --- |
| `InvalidStateError` | L'objet `IDBObjectStore` ou l'objet `IDBIndex` a été supprimé. |
| `TransactionInactiveError` | La transaction rattachée au magasin d'objets (`IDBObjectStore`) est inactive. |
| `DataError` | La clé ou l'intervalle de clés indiqué est invalide. |

Exemples
--------

Dans ce fragment de code, on crée une transaction, on ouvre le magasin d'objets souhaité puis on place un curseur pour parcourir tous les enregistrements du magasin d'objets :


```js
var transaction = db.transaction("name", "readonly");
var objectStore = transaction.objectStore("name");
var request = objectStore.openCursor();
request.onsuccess = function (event) {
  var cursor = event.target.result;
  if (cursor) {
    // cursor.value contient l'enregistrement courant
    // pendant le parcours, on peut éventuellement le manipuler ici
    cursor.continue();
  } else {
    // il n'y a plus de résultats
  }
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-opencursor② |

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

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

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

* Utiliser IndexedDB
* Initier une connexion : `IDBDatabase`
* Utiliser les transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer et modifier les données : `IDBObjectStore`
* Utiliser les curseurs `IDBCursor`
* Exemple de référence : To-do Notifications (exemple *live*).