我需要模拟用户将图片拖放到文件上传div
上。我将从aws s3 bucket
中提取图片。
This question介绍了如何模拟事件。但是,drop
是通过调用dropzone .drop()
上的div
事件来完成的。
但是,在我的情况下,代码将在Chrome扩展程序注入的content script
中运行。这意味着,afaik,我无法在页面的dropzone drop()
上调用div
方法。
还有其他方法可以模拟drag-and-drop
函数吗?
如果重要,我正在处理的网页似乎正在使用jQuery UI ddmanager
来控制其文件dropzone div
。
答案 0 :(得分:1)
您可能需要检查并尝试Passing multiple files with drag and drop中给出的现有拖放的代码示例,其中您实际上可以将一个或多个文件从桌面拖放到浏览器中。
<div id=”dropzone”></div>
var dropzone = document.getElementById('dropzone');
dropzone.ondrop = function(e) {
var length = e.dataTransfer.files.length;
for (var i = 0; i < length; i++) {
var file = e.dataTransfer.files[i];
... // do whatever you want
}
};
但是,它还声明当您尝试传递文件夹时,请注意它将被拒绝或被视为File对象,从而导致失败。对于文件夹,您需要更改处理丢弃对象的方式。
您可能还想阅读Exploring the FileSystem APIs以获取有关FileSystem API的更多信息以及有关新的拖放功能的信息,请阅读此document。
最后,这些GitHub帖子也可能有所帮助: