Actualmente estoy trabajando en un proyecto en el trabajo utilizando la API de arrastrar y soltar de HTML5 para proporcionar una funcionalidad adicional que incluye arrastrar elementos dentro y fuera de los navegadores. Actualmente me encuentro con problemas que son específicos de Chrome (de lo contrario solo se prueban en Firefox, que funciona como se esperaba).HTML5 Arrastrar y soltar getData() solo funciona en el evento de soltar en Chrome?
El problema es que no puedo utilizar el método event.dataTransfer.getData(type)
para devolver los datos establecidos en el evento dragstart
en cualquier evento, excepto el caso drop
.
puse el evento como tal, después de unirse al evento dragstart
(que se dispara):
event.dataTransfer.setData('text/plain', "some string")
Luego, en el caso de drop
, puedo conseguir la multa datos.
event.dataTransfer.getData('text/plain')
Sin embargo, no puede utilizar el mismo método que el anterior con respecto a otros eventos (tales como dragover
). Incluso si trato de usar el método anterior en la línea después de llamar al setData()
(es decir, en la devolución de llamada dragstart
), aún así devolverá undefined
.
Así, en Chrome, el tema es que getData
en Chrome siempre devolverá undefined
, excepto dentro de la devolución de llamada drop
evento. (En Firefox, puedo obtener con éxito los datos correctos.)
Si tiene la referencia al objeto dataTransfer
del mismo elemento de arrastre, ¿por qué no podría obtener los datos hasta que se descarten?
Sólo me preguntaba:
- alguien ha tenido este problema con Chrome antes?
- ¿Qué soluciones hay?
- ¿O es algo que Chrome debe corregir?
Recursos: Specification for HTML5 drag and drop.
[Este informe de error] (http://code.google.com/p/chromium/issues/detail?id=94023) parece relacionado. – pimvdb
posible duplicado de [HTML5 DnD dataTransfer setData o getData no funciona en todos los navegadores excepto Firefox] (http://stackoverflow.com/questions/11927309/html5-dnd-datatransfer-setdata-or-getdata-not-working-in- every-browser-except-fi) – broofa