InputEvent: dataTransfer property

Baseline Widely available

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

The dataTransfer read-only property of the InputEvent interface returns a DataTransfer object containing information about richtext or plaintext data being added to or removed from editable content.

Value

A DataTransfer object or null. The spec has an overview of its value in various cases.

Examples

In the following simple example we've set up an event listener on the input event so that when any content is pasted into the contenteditable <p> element, its HTML source is retrieved via the InputEvent.dataTransfer.getData() method and reported in the paragraph below the input.

Try copying and pasting some of the content provided to see the effects.

html
<p><span style="font-weight: bold; color: blue">Whoa, bold blue text!</span></p>
<p>
  <span style="font-style: italic; color: red">Exciting: italic red text!</span>
</p>
<p>Boring normal text ;-(</p>

<hr />

<p contenteditable="true">
  Go on, try pasting some content into this editable paragraph and see what
  happens!
</p>

<p class="result"></p>
js
const editable = document.querySelector("p[contenteditable]");
const result = document.querySelector(".result");

editable.addEventListener("input", (e) => {
  result.textContent = e.dataTransfer.getData("text/html");
});

Specifications

Specification
Input Events Level 2
# dom-inputevent-datatransfer

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
dataTransfer

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support