Clipboard
=========

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

* Learn more
* See full compatibility
* Report feedback

**Note :** Le **presse-papiers** est un tampon de données utilisé pour le stockage ou le transfert à court terme de données, éventuellement entre documents ou applications. Il est généralement mis en œuvre sous la forme d'une mémoire tampon temporaire, parfois appelée « tampon de collage », qui peut être accédé par la plupart ou tous les programmes de l'environnement via des interfaces de programmation définies.

Une application typique accède aux fonctionnalités du presse-papiers en associant des entrées utilisateur telles que des raccourcis clavier, des éléments de menus, etc. à ces interfaces.

L'interface **`Clipboard`** implémente l'API clipboard, qui fournit — si l'utilisateur ou l'utilisatrice accorde sa permission — un accès en lecture et en écriture au contenu du presse-papiers du système. L'API clipboard peut être utilisée pour implémenter les fonctionnalités couper, copier et coller dans une application web.

Le presse-papiers du système est exposé via la propriété globale `Navigator.clipboard` (en-US).

Les appels aux méthodes de l'objet `Clipboard` échoueront si l'utilisateur ou l'utilisatrice n'a pas accordé les permissions requises en utilisant l'API permissions, et la permission `"clipboard-read"` ou `"clipboard-write"` selon le besoin.

**Note :** En réalité, actuellement, les prérequis des navigateurs pour accéder au presse-papiers varient significativement. Veuillez consulter la section Disponibilité du presse-papiers pour plus de détails.

Toutes les méthodes de l'API clipboard fonctionnent de manière asynchrone ; elles renvoient une `Promise` qui est résolue une fois que l'accès au presse-papiers a réussi. La promesse est rejetée si l'accès au presse-papiers est refusé.

Méthodes
--------

*`Clipboard` est basé sur l'interface `EventTarget`, et inclut les méthodes de celle-ci.*

`read()` (en-US)

Demande des données arbitraires (telles que des images) depuis le presse-papiers, et renvoie une `Promise`. Quand les données ont été obtenues, la promesse est résolue avec un objet `DataTransfer` qui fournit les données.

`readText()` (en-US)

Demande du texte depuis le presse-papiers du système ; renvoie une `Promise` qui est résolue avec une `DOMString` contenant le texte du presse-papiers une fois disponible.

`write()`

Écrit des données arbitraires dans le presse-papiers du système. Cette opération asynchrone signale quand elle a terminé en résolvant la `Promise` renvoyée.

`writeText()`

Écrit du texte dans le presse-papiers du système, renvoyant une `Promise` qui est résolue une fois que le texte est entièrement copié dans le presse-papiers.

Disponibilité du presse-papiers
-------------------------------

L'API clipboard asynchrone est une addition relativement récente, et son processus de mise en œuvre dans les navigateurs n'est pas encore terminé. En raison de questions de sécurité et de complexités techniques, l'intégration de cette API se fait progressivement dans la plupart des navigateurs.

Par exemple, Firefox ne supporte pas encore les permissions `"clipboard-read"` et `"clipboard-write"`, et l'accès aux méthodes pour lire et modifier le contenu du presse-papiers sont restreintes d'autres façons.

Pour les WebExtensions, vous pouvez demander les permissions `"clipboardRead"` et `"clipboardWrite"` afin de pouvoir utiliser `clipboard.readText()` et `clipboard.writeText()`. Les scripts de contenu appliqués à des sites HTTP n'ont pas accès à l'objet `Clipboard`. Voir extensions in Firefox 63.

De plus, `read()` (en-US) et `write()` sont désactivées par défaut et requièrent de changer une préférence pour les activer. Consultez les tables de compatibilité de chaque méthode avant de les utiliser.

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

| Specification |
| --- |
| Clipboard API and events # clipboard-interface |

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

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