我有以下代码。它将创建一个新的FileList来编辑文件输入的FileList对象,使我可以创建用户要上传的所有文件的列表,并为他提供删除或重新上传其中一些文件的选项:
function FileListItem(a) {
a = [].slice.call(Array.isArray(a) ? a : arguments);
for (var c, b = c = a.length, d = !0; b-- && d;) d = a[b] instanceof File;
if (!d) throw new TypeError("expected argument to FileList is File or array of File objects");
for (b = (new ClipboardEvent("")).clipboardData || new DataTransfer; c--;) b.items.add(a[c]);
return b.files;
}
不幸的是,由于DataTransfer构造函数不存在,因此无法在iOS和MacOS上运行。我收到以下错误:
[Error] TypeError: function is not a constuctor (evaluating 'new DataTransfer')
在这里您可以看到DataTransfer对象的兼容性:developer.mozilla.org
现在我的问题:在Safari上是否可以使用替代方法?