我如何通过Chrome扩展模拟文件拖放上传
How do I simulate a file drag-n-drop upload via Chrome Extension?
我需要模拟用户将图像拖放到文件上传div
上。我会从aws s3 bucket
上提取图像。
这个问题涉及如何模拟事件。然而,drop
是通过调用dropzone div
上的.drop()
事件来完成的。
然而,在我的情况下,代码将运行在content script
注入的Chrome扩展。这意味着,我不能在页面的dropzone div
上调用drop()
方法。
是否有另一种方法来模拟drag-and-drop
函数?
如果它很重要,我正在处理的页面似乎正在使用jQuery UI ddmanager
来控制其文件dropzone div
。
您可能想要检查并尝试现有的拖放代码示例传递多个文件与拖放,其中您可以实际拖放一个或多个文件从桌面到浏览器。
<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对象,从而导致失败。对于文件夹,您需要更改处理掉落对象的方式。
您可能还想阅读探索文件系统API以获得更多关于文件系统API和新拖放功能的信息,请阅读此文档。
最后,这些GitHub帖子也可能有所帮助:
- drag_and_drop_helper.js
- jquery.simulate.js
相关文章:
- html5拖放文件-在提交整个表单时上传
- 拖放文件上传无需AJAX,在前台同步
- 为什么这个文件上传拖放不起作用,我完全复制了 CodePen 代码
- Jstree在拖放后将树保存到xml文件中
- 文件上载(拖放)无法工作
- 拖放文件时,dataTransfer.items属性在Firefox和IE中未定义,但在Chrome中未定义
- 上传文件时检测到已取消的拖放操作
- HTML5拖放:使用JavaScript在文本框中加载文本文件
- 将普通表单与文件输入与拖放区相结合
- HTML5拖放文件字段
- 从单独的文件加载拖放区不会加载
- JavaScript/HTML5/jQuery 拖放上传 - “未捕获的类型错误:无法读取未定义的属性'文件
- 使用拖放区将文件直接上传到 Azure Blob 存储(使用 SAS).js
- 当拖放区域中没有文件时禁用“提交”按钮
- 拖放以克隆原始文件
- 使用 nodejs 上传文件,使用拖放区快速和角度
- 我如何通过Chrome扩展模拟文件拖放上传
- 我可以使用HTML5通过单个文件拖放多个文件吗?
- AngularJS文件拖放指令
- Javascript -双文件拖放事件触发