Spec-Zone.ru › Web APIs

DataTransferItemList

Базовая Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Объект DataTransferItemList представляет собой список объектов DataTransferItem, представляющих элементы, которые перетаскиваются. Во время операции перетаскивания каждый DragEvent имеет свойство dataTransfer, которое является объектом DataTransferItemList.

К отдельным элементам можно получить доступ, используя нотацию квадратных скобок [].

DataTransferItemList в основном предназначен для API перетаскивания HTML, и по-прежнему описан в разделе HTML перетаскивания, но теперь он также используется другими API, такими как ClipboardEvent.clipboardData и InputEvent.dataTransfer. Документация DataTransferItemList в первую очередь будет обсуждать его использование в операциях перетаскивания, и для использования DataTransferItemList в других контекстах следует обратиться к документации соответствующих API.

У этого интерфейса нет конструктора.

Свойства экземпляра

DataTransferItemList.length Только для чтения

Число элементов перетаскивания в списке.

Методы экземпляра

DataTransferItemList.add()

Добавляет элемент (объект File или строку) в список элементов перетаскивания и возвращает объект DataTransferItem для нового элемента.

DataTransferItemList.remove()

Удаляет элемент перетаскивания из списка по заданному индексу.

DataTransferItemList.clear()

Удаляет все элементы перетаскивания из списка.

Пример

Этот пример демонстрирует использование перетаскивания.

JavaScript

function dragstartHandler(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");
}

function dropHandler(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}`);
      });
    }
  }
}

function dragoverHandler(ev) {
  console.log("dragOver");
  ev.preventDefault();

  // Set the dropEffect to move
  ev.dataTransfer.dropEffect = "move";
}

function dragendHandler(ev) {
  console.log("dragEnd");
  const dataList = ev.dataTransfer.items;

  // Clear any remaining drag data
  dataList.clear();
}

HTML

<div>
  <p
    id="source"
    ondragstart="dragstartHandler(event);"
    ondragend="dragendHandler(event);"
    draggable="true">
    Select this element, drag it to the Drop Zone and then release the selection
    to move the element.
  </p>
</div>
<div
  id="target"
  ondrop="dropHandler(event);"
  ondragover="dragoverHandler(event);">
  Drop Zone
</div>

CSS

div {
  margin: 0em;
  padding: 2em;
}

#source {
  color: blue;
  border: 1px solid black;
}

#target {
  border: 1px solid black;
}

Результат

Спецификации

Спецификация
HTML
# the-datatransferitemlist-interface

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
DataTransferItemList 13 12 50 12 6 18 50 ≤14 6 1.0 4.4
add 13 12 50 12 6 18 50 ≤14 6 1.0 4.4
clear 13 12 50 12 6 18 50 ≤14 6 1.0 4.4
length 13 12 50 12 6 18 50 ≤14 6 1.0 4.4
remove 31 12 50 12 6 31 50 ≤14 6 2.0 4.4.3

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API