此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

DataTransferItem:kind 属性

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2016年11月⁩.

只读的 DataTransferItem.kind 属性返回 DataTransferItem 对象所代表的拖放数据项的类型,即 stringfile

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

  • '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")) {
      // 该项是目标节点
      item.getAsString((s) => {
        ev.target.appendChild(document.getElementById(s));
      });
    } else if (item.kind === "string" && item.type.match("^text/html")) {
      // 拖放数据项是 HTML
      console.log("… Drop: HTML");
    } else if (item.kind === "file" && item.type.match("^image/")) {
      // 拖放数据项是图片文件
      const f = item.getAsFile();
      console.log("… Drop: File");
    }
  }
}

规范

Specification
HTML
# dom-datatransferitem-kind-dev

浏览器兼容性

参见