В настоящее время я работаю над проектом, работающим с использованием 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?