--- title: HTMLElement.oncopy slug: Web/API/HTMLElement/oncopy tags: - API - Event Handler - Experimental - HTMLElement - NeedsSpecTable - Property - Reference translation_of: Web/API/HTMLElement/oncopy ---
{{ APIRef("HTML DOM") }}{{SeeCompatTable}}

oncopy プロパティは {{domxref("HTMLElement")}} インターフェイスのプロパティで、 {{domxref("Element/copy_event", "copy")}} イベントを処理するイベントハンドラー ({{event("Event_handlers", "event handler")}}) です。

copy イベントはユーザーがテキストをコピーしようとしたときに発生します。

構文

target.oncopy = functionRef;

functionRef は関数名または関数式です。この関数は {{domxref("ClipboardEvent")}} オブジェクトを唯一の引数として受け取ります。

この例では、 {{htmlElement("textarea")}} からのすべてのコピーと貼り付けをブロックします。

HTML

<h3>Play with this text area:</h3>
<textarea id="editor" rows="3">Try copying and pasting text into this field!</textarea>

<h3>Log:</h3>
<p id="log"></p>

JavaScript

const log = document.getElementById('log');

function logCopy(event) {
  log.innerText = 'Copy blocked!\n' + log.innerText;
  event.preventDefault();
}

function logPaste(event) {
  log.innerText = 'Paste blocked!\n' + log.innerText;
  event.preventDefault();
}

const editor = document.getElementById('editor');

editor.oncopy = logCopy;
editor.onpaste = logPaste;

結果

{{EmbedLiveSample("Example", 700, 300)}}

仕様書

WHATWG Standard

ブラウザーの互換性

{{Compat("api.HTMLElement.oncopy")}}

Firefox 13 から、この機能は設定 dom.event.clipboardevents.enabled で制御されます。既定値は true ですが無効化できます。

関連情報