В настоящее время я работаю над проектом, работающим с использованием API перетаскивания HTML5, чтобы обеспечить дополнительную функциональность, включая перетаскивание элементов в браузерах и из них. В настоящее время я сталкиваюсь с проблемами, характерными для Chrome (в противном случае они проверяются только в Firefox, который работает так, как ожидалось).
Проблема заключается в том, что я не могу использовать метод event.dataTransfer.getData(type)
для возврата набора данных в событие dragstart
в любые события, кроме события 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?