Quiero que los elementos de una página web arrastrados y soltados de la ventana del navegador contengan objetos de archivo arbitrarios, que se pueden soltar, por ejemplo, en un navegador de archivos.
Hacer event.dataTransfer.files contenga texto y poder colocarlo en un editor de texto funciona para mí agregando el texto a través setData() :
e.dataTransfer.setData("text/plain", "hello world);Este es un ejemplo que demuestra arrastrar y soltar a una aplicación externa (solo con texto): https://jsfiddle.net/vg129k4z/
Sin embargo, agregar archivos no funciona de esta manera. Puedo llamar a e.dataTransfer.items.add() con un objeto de archivo sin errores pero sin efecto en la ventana externa tampoco.
Reemplazar e.dataTransfer.setData() con e.dataTransfer.items.add() (como sugiere la documentación ) tampoco funciona para el texto, así que supongo que me falta algo.
Esta es la modificación del ejemplo anterior agregando un archivo en lugar de un texto: https://jsfiddle.net/3kgw7ba9/
¿Cuál es el equivalente a dataTransfer.setData("text/plain", "hello world); para archivos entonces?