Die HTML Drag & Drop-Schnittstellen sind DragEvent, DataTransferund .DataTransferItemDataTransferItemList
Die DragEventSchnittstelle hat einen Konstruktor und eine dataTransferEigenschaft, die ein DataTransferObjekt ist.
DataTransferObjekte umfassen den Zustand des Ziehereignisses, wie z. B. die Art des Ziehvorgangs (wie copyoder move), die Daten des Ziehvorgangs (ein oder mehrere Elemente) und den MIME-Typ jedes Ziehelements . DataTransferObjekte verfügen auch über Methoden zum Hinzufügen oder Entfernen von Elementen zu den Daten des Ziehvorgangs.
Die Schnittstellen DragEventund DataTransfersollten die einzigen sein, die benötigt werden, um HTML-Drag-and-Drop-Funktionen zu einer Anwendung hinzuzufügen. (Firefox unterstützt einige Gecko-spezifische Erweiterungen für das DataTransferObjekt, aber diese Erweiterungen funktionieren nur mit Firefox.)
Jedes DataTransferObjekt enthält eine itemsEigenschaft, die eine listvon DataTransferItemObjekten ist. Ein DataTransferItemObjekt stellt ein einzelnes Ziehelement dar , jedes mit einer kindEigenschaft (entweder stringoder file) und einer typeEigenschaft für den MIME-Typ des Datenelements. Das DataTransferItemObjekt verfügt auch über Methoden zum Abrufen der Daten des gezogenen Elements.
Das DataTransferItemListObjekt ist eine Liste von DataTransferItemObjekten. Das Listenobjekt verfügt über Methoden zum Hinzufügen eines Ziehelements zur Liste, zum Entfernen eines Ziehelements aus der Liste und zum Löschen aller Ziehelemente aus der Liste.
Ein Hauptunterschied zwischen den Schnittstellen DataTransferund DataTransferItembesteht darin, dass erstere die synchrone getData()Methode verwendet, um auf die Daten eines Ziehelements zuzugreifen, letztere jedoch stattdessen die asynchrone getAsString()Methode verwendet.