JS:拖放DataTransfer对象在Safari上不起作用。另类?

时间:2020-05-05 17:22:52

标签: javascript safari cross-browser compatibility data-transfer

我有以下代码。它将创建一个新的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上是否可以使用替代方法?

0 个答案:

没有答案