1. 開発者向けのウェブ技術
  2. Web API
  3. Element
  4. paste

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Element: paste イベント

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

paste イベントは、ユーザーがブラウザーのユーザーインターフェイスで「貼り付け」操作を行ったときに発生します。

カーソルが編集可能なコンテキストにある場合(<textarea>contenteditable 属性が true の要素など)、既定のアクションはクリップボードの内容を文書のカーソル位置に挿入します。

このイベントのハンドラーは、イベントの clipboardData プロパティにある getData() を呼び出すことでクリップボードの中身にアクセスすることができます。

既定の動作を上書きする場合(例えば、別なデータを挿入したりクリップボードの内容を変換したりする場合など)、イベントハンドラーで event.preventDefault() を使用して既定のアクションをキャンセルした上で、必要なデータを手動で挿入してください。

合成した paste イベントを構築して配信することができますが、文書の内容には影響しません。

構文

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

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

イベント型

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

Event ClipboardEvent

ライブデモ

HTML

html
<div class="source" contenteditable="true">Copy text from this box.</div>
<div class="target" contenteditable="true">And paste it into this one.</div>
div.source,
div.target {
 border: 1px solid gray;
 margin: 0.5rem;
 padding: 0.5rem;
 height: 1rem;
 background-color: #e9eef1;
}

JS

js
const target = document.querySelector("div.target");
target.addEventListener("paste", (event) => {
 event.preventDefault();
 let paste = (event.clipboardData || window.clipboardData).getData("text");
 paste = paste.toUpperCase();
 const selection = window.getSelection();
 if (!selection.rangeCount) return;
 selection.deleteFromDocument();
 selection.getRangeAt(0).insertNode(document.createTextNode(paste));
 selection.collapseToEnd();
});

結果

仕様書

Specification
Clipboard API and events
# clipboard-event-paste
HTML
# handler-onpaste

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.

AltStyle によって変換されたページ (->オリジナル) /