Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web APIs
  3. DataTransferItemList

DataTransferItemList

Baseline Widely available

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

TheDataTransferItemList object is a list ofDataTransferItem objects representing items being dragged. During adrag operation, eachDragEvent has adataTransfer property and that property is aDataTransferItemList.

The individual items can be accessed using thebracket notation[].

DataTransferItemList was primarily designed for theHTML Drag and Drop API, and is still specified in the HTML drag-and-drop section, but it is now also used by other APIs, such asClipboardEvent.clipboardData andInputEvent.dataTransfer. Documentation ofDataTransferItemList will primarily discuss its usage in drag-and-drop operations, and you should refer to the other APIs' documentation for usage ofDataTransferItemList in those contexts.

This interface has no constructor.

Instance properties

DataTransferItemList.lengthRead only

Anunsigned long that is the number of drag items in the list.

Instance methods

DataTransferItemList.add()

Adds an item (either aFile object or a string) to the drag item list and returns aDataTransferItem object for the new item.

DataTransferItemList.remove()

Removes the drag item from the list at the given index.

DataTransferItemList.clear()

Removes all of the drag items from the list.

Example

This example shows how to use drag and drop.

HTML

html
<div>  <p draggable="true">    Select this element, drag it to the Drop Zone and then release the selection    to move the element.  </p></div><div>Drop Zone</div>

CSS

css
div {  margin: 0em;  padding: 2em;}#source {  color: blue;  border: 1px solid black;}#target {  border: 1px solid black;}

JavaScript

js
const source = document.getElementById("source");const target = document.getElementById("target");source.addEventListener("dragstart", (ev) => {  console.log("dragStart");  // Add this element's id to the drag payload so the drop handler will  // know which element to add to its tree  const dataList = ev.dataTransfer.items;  dataList.add(ev.target.id, "text/plain");  // Add some other items to the drag payload  dataList.add("<p>Paragraph…</p>", "text/html");  dataList.add("http://www.example.org", "text/uri-list");});source.addEventListener("dragend", (ev) => {  console.log("dragEnd");  const dataList = ev.dataTransfer.items;  // Clear any remaining drag data  dataList.clear();});target.addEventListener("drop", (ev) => {  console.log("Drop");  ev.preventDefault();  // Loop through the dropped items and log their data  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      item.getAsString((s) => {        console.log(`… Drop: HTML = ${s}`);      });    } else if (item.kind === "string" && item.type.match(/^text\/uri-list/)) {      // Drag data item is URI      item.getAsString((s) => {        console.log(`… Drop: URI = ${s}`);      });    }  }});target.addEventListener("dragover", (ev) => {  console.log("dragOver");  ev.preventDefault();  // Set the dropEffect to move  ev.dataTransfer.dropEffect = "move";});

Result

Specifications

Specification
HTML
# the-datatransferitemlist-interface

Browser compatibility

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp