Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: paste-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Das paste-Ereignis der Clipboard API wird ausgelöst, wenn ein Benutzer über die Benutzeroberfläche des Browsers eine Aktion zum Einfügen gestartet hat.

Befindet sich der Cursor in einem bearbeitbaren Bereich (beispielsweise in einem <textarea> oder einem Element, dessen Attribut contenteditable auf true gesetzt ist), wird standardmäßig der Inhalt der Zwischenablage an der Cursorposition in das Dokument eingefügt.

Ein Handler für dieses Ereignis kann auf den Inhalt der Zwischenablage zugreifen, indem er getData() für die clipboardData-Eigenschaft des Ereignisses aufruft.

Um das Standardverhalten zu überschreiben (beispielsweise um andere Daten oder eine veränderte Fassung des Inhalts der Zwischenablage einzufügen), muss ein Event-Handler die Standardaktion mit event.preventDefault() verhindern und anschließend die gewünschten Daten manuell einfügen.

Ein synthetisches paste-Ereignis kann erstellt und ausgelöst werden. Dies wirkt sich jedoch nicht auf den Inhalt des Dokuments aus.

Dieses Ereignis steigt im DOM-Baum bis zu Document und Window auf, ist abbrechbar und composed.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onpaste = (event) => { }

Ereignistyp

Ein ClipboardEvent. Erbt von Event.

Event ClipboardEvent

Beispiele

Interaktives Beispiel

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>

JavaScript

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();
});

Ergebnis

Spezifikationen

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

Browser-Kompatibilität

Siehe auch