В настоящее время я работаю над проектом на работе, используя API перетаскивания HTML5, чтобы обеспечить дополнительную функциональность, включая перетаскивание элементов в браузеры и из них.В настоящее время я сталкиваюсь с проблемами, относящимися к Chrome (в остальном тестируется только в Firefox, который работает как положено).
Проблема в том, что я не могу использовать метод event.dataTransfer.getData(type)
для возврата набора данных в *Событие 1004 * в любых событиях, кроме события drop
.
Я устанавливаю событие так, после привязки к событию dragstart
(которое срабатывает):
event.dataTransfer.setData('text/plain', "some string")
Тогдав случае drop
я могу получить данные в порядке.
event.dataTransfer.getData('text/plain')
Однако я не могу использовать тот же метод, что и выше, для любых других событий (например, dragover
).Даже если я попытаюсь использовать вышеуказанный метод в строке после вызова setData()
(т. Е. В обратном вызове dragstart
), он все равно вернет undefined
.
Итак, в Chrome проблемав том, что getData
в Chrome всегда будет возвращать undefined
, кроме как в обратном вызове события drop
.(В Firefox я могу успешно получить правильные данные.)
Если у вас есть ссылка на объект dataTransfer
того же перетаскиваемого элемента, то почему вы не сможете получить данные, пока они не будутупал?
Просто интересно:
- У кого-нибудь была такая проблема с Chrome раньше?
- Какие есть обходные пути?
- Или что-то нужно исправить в Chrome?
Ресурсы: Спецификация для перетаскивания HTML5.