DataTransferItem: kind 属性

Baseline 已广泛支持

此功能已得到良好确立,并在许多设备和浏览器版本中都可使用。自 ⁨2016 年 11 月⁩以来,它已在所有浏览器中可用。

只读属性 DataTransferItem.kind 返回表示拖动数据项DataTransferItem 对象的种类,即一个字符串或一个文件。

一个表示拖动数据项种类的字符串。它必须是以下值之一:

'file'

如果拖动数据项是一个文件。

'string'

如果拖动数据项的种类是纯 Unicode 字符串

示例

此示例展示了 kind 属性的使用。

js
function dropHandler(ev) {
  console.log("Drop");
  ev.preventDefault();
  for (const item of ev.dataTransfer.items) {
    if (item.kind === "string" && item.type.match("^text/plain")) {
      // This item is the target node
      item.getAsString((s) => {
        ev.target.appendChild(document.getElementById(s));
      });
    } else if (item.kind === "string" && item.type.match("^text/html")) {
      // Drag data item is HTML
      console.log("… Drop: HTML");
    } else if (item.kind === "file" && item.type.match("^image/")) {
      // Drag data item is an image file
      const f = item.getAsFile();
      console.log("… Drop: File");
    }
  }
}

规范

规范
HTML
# dom-datatransferitem-kind-dev

浏览器兼容性

另见