微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

模拟拖入浏览器的文件的拖动事件

如何解决模拟拖入浏览器的文件的拖动事件

当您将文件从桌面拖到浏览器时,您可以使用 evt.dataTransfer.items[i].webkitGetAsEntry()

文件检索为“FileEntry”

但是我感兴趣的是是否可以以编程方式创建此事件:使用拖放事件传输文件(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,您可以创建格式与从计算机中拖拽相同的文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。