Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Element : évènement copy

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

L'évènement copy de l'API Clipboard se déclenche lorsque l'utilisateur·ice initie une action de copie avec l'interface utilisateur du navigateur.

L'action par défaut de l'évènement est de copier la sélection (le cas échéant) dans le presse-papiers.

Un gestionnaire d'évènement peut modifier le contenu du presse-papiers en appelant setData(format, data) sur la propriété ClipboardEvent.clipboardData de l'évènement, et en annulant l'action par défaut de l'évènement en utilisant event.preventDefault().

Cependant, le gestionnaire ne peut pas lire les données du presse-papiers.

Il est possible de construire et de déclencher un évènement synthétique copy, mais cela n'affecte pas le presse-papiers du système.

Cet évènement se propage dans l'arborescence DOM, jusqu'à Document et Window, est annulable et est composé.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènement.

js
addEventListener("copy", (event) => { })

oncopy = (event) => { }

Type d'évènement

Un objet ClipboardEvent. Hérite de Event.

Event ClipboardEvent

Exemples

Exemple interactif

HTML

html
<div class="source" contenteditable="true">Copiez le texte de cette zone.</div>
<div class="cible" contenteditable="true">Et collez-le dans celle-ci.</div>

JavaScript

js
const source = document.querySelector("div.source");

source.addEventListener("copy", (event) => {
  const selection = document.getSelection();
  event.clipboardData.setData("text/plain", selection.toString().toUpperCase());
  event.preventDefault();
});

Résultat

Spécifications

Spécification
Clipboard API and events
# clipboard-event-copy
HTML
# handler-oncopy

Compatibilité des navigateurs

Voir aussi