DataTransfer

DataTransfer 对象用于保存上下文之间传输的任何数据,例如拖放操作或剪贴板读写。它可以保存一个或多个数据项,每个数据项可以包含一种或多种数据类型。

DataTransfer 主要针对 HTML 拖放 API 设计,作为 DragEvent.dataTransfer 属性,并且仍在 HTML 拖放部分中指定,但现在也用于其他 API,例如 ClipboardEvent.clipboardDataInputEvent.dataTransfer。但是,其他 API 仅使用其接口的某些部分,忽略了 dropEffect 等属性。DataTransfer 的文档将主要讨论它在拖放操作中的用法,您应该参考其他 API 的文档以了解 DataTransfer 在这些上下文中的用法。

构造函数

DataTransfer()

创建并返回一个新的 DataTransfer 对象。

实例属性

DataTransfer.dropEffect

获取当前选定的拖放操作类型,或将操作设置为新类型。该值必须为 nonecopylinkmove

DataTransfer.effectAllowed

提供所有可能的操作类型。必须为 nonecopycopyLinkcopyMovelinklinkMovemovealluninitialized 之一。

DataTransfer.files 只读

包含数据传输中可用的所有本地文件的列表。如果拖放操作不涉及拖放文件,则此属性为空列表。

DataTransfer.items 只读

提供一个 DataTransferItemList 对象,该对象是所有拖放数据的列表。

DataTransfer.types 只读

一个字符串数组,给出在 dragstart 事件中设置的格式。

实例方法

DataTransfer.addElement() 实验性 非标准

设置给定元素的拖放源。这将是在其上触发 dragdragend 事件的元素,而不是默认目标(被拖动的节点)。Firefox 特定。

DataTransfer.clearData()

删除与给定类型关联的数据。type 参数是可选的。如果类型为空或未指定,则删除与所有类型关联的数据。如果指定类型的数据不存在,或数据传输不包含数据,则此方法将不起作用。

DataTransfer.getData()

检索给定类型的 data,如果该类型的 data 不存在或 data 传输不包含 data,则检索空字符串。

DataTransfer.setData()

设置给定类型的 data。如果该类型的 data 不存在,则将其添加到末尾,以便 types 列表中的最后一项将是新的格式。如果该类型的 data 已经存在,则用新 data 替换相同位置的现有 data。

DataTransfer.setDragImage()

设置用于拖动的图像,如果需要自定义图像。

示例

本文档中列出的每个方法和属性都有自己的参考页面,每个参考页面要么直接包含接口示例,要么包含指向示例的链接。

规范

规范
HTML 标准
# the-datatransfer-interface

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见