Normalnie nie masz dostępu do tej informacji na temat zdarzeń innych niż dragstart
i drop
. Wydaje się, że Firefox zapewnia dostęp, ale wydaje się, że jest niezgodny ze standardem.
Sposób przesyłania danych podczas przeciągania i upuszczania odbywa się za pomocą obiektu data store
, zawierającego wszystkie informacje potrzebne do wykonania różnych operacji. Istnieją jednak pewne ograniczenia dotyczące tego, co można zrobić za pomocą tych informacji w zależności od numeru event
, do którego dostęp do tej składnicy danych. Istnieją 3 tryby, które są zdefiniowane następująco:
tryb A magazyn danych drag, która jest jedną z następujących czynności:
trybie odczytu/zapisu
Na razie dragstart. Nowe dane można dodać do magazynu danych przeciągania.
Read-only mode
Na razie upuszczenia. Lista pozycji reprezentujących przeciągnięte dane może być odczytana, łącznie z danymi. Nie można dodawać nowych danych.
trybie chronionym
Dla wszystkich innych imprez. Formaty i rodzaje znajdujące się na liście danych przeciągnięcia mogą zawierać listę elementów reprezentujących przeciągnięte dane, ale same dane są niedostępne i nie można dodać nowych danych.
https://html.spec.whatwg.org/multipage/interaction.html#the-drag-data-store
Więc na dragover, magazyn danych jest w trybie chronionym, a więc dane nie powinny być dostępne. Ponownie Firefox implementuje to inaczej, ale nie powinieneś polegać na nim w żadnym wypadku.
Te tryby są tam ze względów bezpieczeństwa, przeniesienie tych danych umożliwia przesyłanie nie tylko z elementów tej samej stronie, ale od danych z innych aplikacji, plików, itp
To wstyd jest to przypadek; sprawia, że rysowanie symboli zastępczych i wiedza o tym, co 'dataTransfer.dropEffect' powinno być dość trudne, jeśli nie wiesz, co to jest przeciągane. – Robert
Jeśli kontrolujesz dragstart, to masz dostęp. Jeśli tego nie zrobisz, to ma sens ograniczenie tego, co możesz wiedzieć, w przeciwnym razie możesz mieć dostęp do tego, co jest przeciągane na twoją stronę bez wiedzy użytkownika. –