Element: cut イベント

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

cut イベントは、ユーザーがブラウザーのユーザーインターフェイスから「切り取り」操作を実行したときに発生します。

ユーザーが編集不可能なコンテンツに対して切り取りをしようとすると、cut イベントは発生しますが、イベントオブジェクトにはデータが入りません。

イベントの既定のアクションは、(もしあれば)選択範囲をクリップボードへコピーして文書からその部分を取り除くことです。

このイベントのハンドラーは、setData(format, data) をイベントの ClipboardEvent.clipboardData プロパティに対して呼び出すことで、クリップボードの内容を変更したり、event.preventDefault() を使用して既定の動作を取り消したりすることができます。

なお、既定の動作を取り消すと、文書の更新が阻止されます。そのため、「切り取り」の既定の動作をエミュレートしたい場合は、イベントハンドラーでクリップボードを操作するとともに、文書から選択範囲を手動で取り除かなければなりません。

このハンドラーがクリップボードのデータを読み取ることはできません。

合成した cut イベントを構築して配信することもできますが、システムのクリップボードには影響を与えません。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("cut", (event) => {});

oncut = (event) => {};

イベント型

ClipboardEvent です。 Event から継承しています。

Event ClipboardEvent

ライブデモ

HTML

html
<div class="source" contenteditable="true">Cut text from this box.</div>
<div class="target" contenteditable="true">And paste it into this one.</div>

JS

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

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

結果

仕様書

Specification
Clipboard API and events
# clipboard-event-cut
HTML Standard
# handler-oncut

ブラウザーの互換性

BCD tables only load in the browser

関連情報