validar soltar example ejemplos ejemplo drop bootstrap arrastrar and javascript html5 drag-and-drop

javascript - example - ¿Arrastrar y soltar HTML5 getData() solo funciona en el evento drop en Chrome?



draggable jquery ejemplos (2)

Haciendo referencia a esta respuesta :

Los datos solo están disponibles en forma inmediata, esta es una característica de seguridad, ya que un sitio web puede capturar datos cuando se arrastra algo a través de la página web.

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 probaron en Firefox, que funciona como se esperaba).

El problema es que no puedo usar el event.dataTransfer.getData(type) para devolver el conjunto de datos en el evento dragstart en cualquier evento excepto el evento drop .

Establecí el evento como tal, después de vincularlo al evento dragstart (que se dispara):

event.dataTransfer.setData(''text/plain'', "some string")

Luego, en el evento drop , puedo obtener la multa de datos.

event.dataTransfer.getData(''text/plain'')

Sin embargo, no puedo usar el mismo método anterior en ningún otro evento (como dragover ). Incluso si trato de usar el método anterior en la línea después de llamar a setData() (es decir, en la dragstart llamada de dragstart ), entonces volverá undefined .

Entonces, en Chrome, el problema es que getData en Chrome siempre retornará undefined , excepto dentro de la devolución de llamada del evento drop . (En Firefox, puedo obtener correctamente 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 eliminen?

Sólo me preguntaba:

  • ¿Alguien ha tenido este problema con Chrome antes?
  • ¿Qué soluciones hay?
  • O, ¿es algo que Chrome necesita arreglar?

Recursos: Especificación para HTML5 arrastrar y soltar.