Normalerweise haben Sie keinen Zugriff auf diese Informationen über andere Ereignisse als dragstart
und drop
. Firefox scheint dir Zugriff zu geben, aber es scheint gegen den Standard zu gehen.
Die Art der Übertragung der Daten während eines Drag & Drop erfolgt über ein data store
Objekt, das alle Informationen enthält, die für die verschiedenen Vorgänge benötigt werden. Es gibt jedoch bestimmte Einschränkungen, was Sie mit dieser Information tun können, abhängig von der event
, auf die Sie diesen Datenspeicher zugreifen. Es gibt 3 Modi, die wie folgt definiert sind:
A drag Datenspeicher-Modus, der eine der folgenden ist:
Lese-/Schreibmodus
Für die drag Ereignis. Neue Daten können dem Ziehdatenspeicher hinzugefügt werden.
Read-only-Modus
Für das Drop-Ereignis. Die Liste der Elemente, die die gezogenen Daten darstellen, kann gelesen werden, einschließlich der Daten. Es können keine neuen Daten hinzugefügt werden.
Geschützter Modus
Für alle anderen Veranstaltungen. Die Formate und Arten im Ziehdatenspeicher Liste der Elemente, die die gezogenen Daten darstellen, können aufgelistet werden, aber die Daten selbst sind nicht verfügbar und es können keine neuen Daten hinzugefügt werden.
https://html.spec.whatwg.org/multipage/interaction.html#the-drag-data-store
So auf dragover-, ist der Datenspeicher im geschützten Modus, damit die Daten nicht verfügbar sein sollten. Auch hier implementiert Firefox das anders, aber Sie sollten sich auf keinen Fall darauf verlassen.
Diese Modi geben es aus Sicherheitsgründen, diese Datenübertragung ermöglicht die Übertragung nicht nur von Elementen einer gleichen Seite, aber von Daten aus anderen Anwendungen, Dateien usw.
Es ist eine Schande, das ist der Fall; es macht Zeichnungs-Platzhalter und zu wissen, was 'dataTransfer.dropEffect' ziemlich schwierig sein sollte, wenn Sie nicht wissen, was es ist, das gezogen wird. – Robert
Wenn Sie den Dragstart steuern, haben Sie Zugriff. Wenn Sie dies nicht tun, ist es sinnvoll, das zu beschränken, was Sie wissen können. Andernfalls können Sie auf das zugreifen, was über Ihre Seite gezogen wird, ohne dass der Benutzer davon erfährt. –