InputEvent:dataTransfer 属性

io error: No such file or directory (os error 2) (/home/runner/work/yari/yari/mdn/translated-content/files/zh-cn/web/api/ui_events/index.md)

InputEvent 接口中的只读属性 dataTransfer 返回一个 DataTransfer 对象,该对象包含有关要添加到可编辑内容,或从可编辑内容中删除的富文本或纯文本数据的信息。

一个 DataTransfer 对象。

示例

在下面的简单示例中,我们在 input 事件上设置了一个事件监听器,以便在将任何内容粘贴到可编辑的 <p> 元素时,通过 InputEvent.dataTransfer.getData() 方法获取其 HTML 源代码,并将其报告在输入框下面的段落中。

尝试复制并粘贴提供的部分内容以查看效果。

html
<p><span style="font-weight: bold; color: blue">哇,粗体的蓝色文本!</span></p>
<p>
  <span style="font-weight: italic; color: red">令人兴奋的斜体红色文本!</span>
</p>
<p>令人厌倦的普通文本</p>

<hr />

<p contenteditable="true">
  继续,尝试将一些内容粘贴到这个可编辑的段落中,看看会发生什么!
</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");
});

规范

Specification
Input Events Level 2
# dom-inputevent-datatransfer

浏览器兼容性

BCD tables only load in the browser