如何解决模拟拖入浏览器的文件的拖动事件
当您将文件从桌面拖到浏览器时,您可以使用 evt.dataTransfer.items[i].webkitGetAsEntry()
但是我感兴趣的是是否可以以编程方式创建此事件:使用拖放事件传输文件(blob 或使用 File 构造函数创建),以便接收处理程序也可以完全相同的方式提取它们?
在我的场景中,目标也可能是其他一些站点,因此不接受修改或任何类型的不同格式。
解决方法
有DataTransfer constructor,所以你可以很容易地创建一个,现在你只需要将一个add()
对象File
添加到它的items
列表中:
const dataTransfer = new DataTransfer();
const file = new File( [ "some content" ],"text-file.txt" );
dataTransfer.items.add( file );
const event = new DragEvent( "drop",{ dataTransfer } );
ondrop = (evt) => {
const dT = evt.dataTransfer;
console.log( dT.items[ 0 ],dT.items[ 0 ].webkitGetAsEntry() );
};
dispatchEvent( event );
如果有人想达到同样的目标 - 是的,这是可能的。通过使用 FileSystem API,您可以创建格式与从计算机中拖拽相同的文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。