--- title: 'Element: copy イベント' slug: Web/API/Element/copy_event tags: - API - Clipboard API - Element - Event - Reference - Web - イベント translation_of: Web/API/Element/copy_event ---
copy イベントは、ユーザーがブラウザーのユーザーインターフェイスからコピー操作を実行したときに発生します。
| バブリング | あり |
|---|---|
| キャンセル | 可 |
| インターフェイス | {{domxref("ClipboardEvent")}} |
| イベントハンドラープロパティ | {{domxref("HTMLElement/oncopy", "oncopy")}} |
このイベントの既定の動作は、 (もしあれば) 選択範囲をクリップボードへコピーすることです。
このイベントのハンドラーは、 {{domxref("DataTransfer.setData", "setData(format, data)")}} をイベントの {{domxref("ClipboardEvent.clipboardData")}} プロパティに対して呼び出すことで、クリップボードの内容を変更したり、 {{domxref("Event/preventDefault", "event.preventDefault()")}} を使用してイベントの既定の動作を取り消したりすることができます。
ただし、ハンドラーがクリップボードのデータを読み取ることはできません。
仮想の copy イベントを構築して配信することもできますが、システムのクリップボードには影響を与えません。
<div class="source" contenteditable="true">Try copying text from this box...</div> <div class="target" contenteditable="true">...and pasting it into this one</div>
div.source, div.target {
border: 1px solid gray;
margin: .5rem;
padding: .5rem;
height: 1rem;
background-color: #e9eef1;
}
const source = document.querySelector('div.source');
source.addEventListener('copy', (event) => {
const selection = document.getSelection();
event.clipboardData.setData('text/plain', selection.toString().toUpperCase());
event.preventDefault();
});
{{ EmbedLiveSample('Live_example', '100%', '100px') }}
| 仕様書 | 状態 |
|---|---|
| {{SpecName('Clipboard API', '#clipboard-event-copy')}} | {{Spec2('Clipboard API')}} |
{{Compat("api.Window.copy_event")}}