DataTransfer - 用于保存拖放操作期间拖动的数据
DataTransfer
对象用于保存拖放操作期间拖动的数据。它可以包含一个或多个数据项,每个数据项包含一种或多种数据类型。有关拖放的详细信息,请参阅HTML 拖放 API。
该对象可从 drag events
的 dataTransfer
属性获得。
构造函数
DataTransfer()
创建并返回一个新的 DataTransfer
对象。
属性
标准属性
DataTransfer.dropEffect
获取当前选定的拖放操作的类型,或将操作设置为新类型。值必须是 none
,copy
,link
或 move
。
DataTransfer.effectAllowed
提供可能的所有类型的操作。必须是 none
,copy
,copyLink
,copyMove
,link
,linkMove
,move
,all
或 uninitialized
之一。
DataTransfer.files
包含数据传输中可用的所有本地文件的列表。如果拖动操作不涉及拖动文件,则该属性为空列表。
DataTransfer.items
只读
给出 DataTransferItemList
对象,该对象是所有拖动数据的列表。
DataTransfer.types
只读
一个 strings
数组,给出 dragstart
事件中设置的格式。
Gecko 属性
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
注意: 本节中的所有属性都是 Gecko 特有的。
DataTransfer.mozCursor
给出拖动光标的状态。这主要用于在标签拖动期间控制光标。
DataTransfer.mozItemCount
只读
提供拖动操作中的项目数。
DataTransfer.mozSourceNode
只读
按下按钮以启动拖动操作时鼠标光标所在的 Node
。对于外部拖动,或者如果调用者无法访问节点,该值为 null
。
DataTransfer.mozUserCancelled
只读
该属性仅适用于 dragend
事件,如果用户通过按 escape 取消拖动操作,则该属性为 true
。在所有其他情况下,它将是 false
,包括由于任何其他原因导致拖动失败,例如由于无效位置的丢失。
方法
标准方法
DataTransfer.clearData()
删除与给定类型关联的数据。type
参数是可选的。如果类型为空或未指定,则删除与所有类型关联的数据。如果指定类型的数据不存在,或者数据传输不包含任何数据,则该方法无效。
DataTransfer.getData()
检索给定类型的数据,如果该类型的数据不存在或数据传输不包含数据,则返回空字符串。
DataTransfer.setData()
设置给定类型的数据。如果该类型的数据不存在,则在末尾添加。如果该类型的数据已存在,则替换掉相同位置的数据。
DataTransfer.setDragImage()
如果需要自定义图像,请设置用于拖动的图像。
Gecko 方法
非标准
该功能是非标准的。请尽量不要在生产环境中使用它:因为每个用户不一定会正常运行。它的实现可能存在很大的不兼容性,并且将来可能会改变行为。
注意: 本节中的所有方法都是 Gecko 特有的。
DataTransfer.addElement()
将拖动源设置为给定元素。
DataTransfer.mozClearDataAt()
删除与指定索引处的项目的给定格式关联的数据。索引的范围从零到项目数减一。
DataTransfer.mozGetDataAt()
检索与指定索引处的项目的给定格式关联的数据,如果不存在,则返回 null
。索引应该在从零到项目数减一的范围内。
DataTransfer.mozSetDataAt()
数据传输可以存储多个项目,每个项目从零开始索引。
DataTransfer.mozTypesAt()
保存为指定索引处的项目存储的数据的格式类型列表。如果索引不在 0 到项目数减 1 的范围内,则返回空字符串列表。
规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard DataTransfer 的定义 |
现行的标准 |
mozCursor ,mozItemCount ,mozSourceNode ,mozUserCancelled ,addElement() ,mozClearDataAt() ,mozGetDataAt() ,mozSetDataAt() 和 mozTypesAt 是 Gecko 特有的。 |
HTML 5.1 DataTransfer 的定义 |
推荐 | 不包含在 W3C HTML5 中 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 4 | 支持 | 3.51 | 10 | 12 | 3.1 |
DataTransfer() constructor |
60 | 未知 | 未知 | 未知 | 47 | 未知 |
addElement |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
clearData |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
dropEffect |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
effectAllowed |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
files |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
getData |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
items |
4 | 支持 | 50 | 不支持 | 12 | 不支持 |
mozClearDataAt |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozCursor |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozGetDataAt |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozItemCount |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozSetDataAt |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozSourceNode |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozTypesAt |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
mozUserCancelled |
不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
setData |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
setDragImage |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
types |
支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 52 | 未知 | 支持 | 不支持 |
DataTransfer() constructor |
60 | 60 | 未知 | 未知 | 未知 | 47 | 不支持 |
addElement |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
clearData |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
dropEffect |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
effectAllowed |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
files |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
getData |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
items |
支持 | 支持 | 支持 | 50 | 未知 | 支持 | 不支持 |
mozClearDataAt |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozCursor |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozGetDataAt |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozItemCount |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozSetDataAt |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozSourceNode |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozTypesAt |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
mozUserCancelled |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 不支持 | 不支持 |
setData |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
setDragImage |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
types |
支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
1. 从 Firefox 52 开始,DataTransfer.types
属性根据规范返回一个冻结的 DOMString
数组,而不是 DOMStringList
。