DataTransferItem:type 属性

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

只读属性 DataTransferItem.type 返回代表拖动数据项的 DataTransferItem 对象的类型(格式)。type 是一个 Unicode 字符串,通常由 MIME 类型给出(虽然 MIME 类型不是必须的)。

一些示例类型:text/plaintext/html

一个表示拖动数据项类型的字符串。

示例

该示例演示了 type 属性的用法。

js
function dropHandler(ev) {
  console.log("放置");
  ev.preventDefault();
  const data = ev.dataTransfer.items;
  for (let i = 0; i < data.length; i += 1) {
    if (data[i].kind === "string" && data[i].type.match("^text/plain")) {
      // 该项目是目标节点
      data[i].getAsString((s) => {
        ev.target.appendChild(document.getElementById(s));
      });
    } else if (data[i].kind === "string" && data[i].type.match("^text/html")) {
      // 拖动数据项是 HTML
      console.log("放置:HTML");
    } else if (
      data[i].kind === "string" &&
      data[i].type.match("^text/uri-list")
    ) {
      // 拖动数据项是 URI
      console.log("放置:URI");
    } else if (data[i].kind === "file" && data[i].type.match("^image/")) {
      // 拖动数据项是图像文件
      const f = data[i].getAsFile();
      console.log("……放置:文件");
    }
  }
}

规范

Specification
HTML Standard
# dom-datatransferitem-type-dev

浏览器兼容性

BCD tables only load in the browser

参见