У меня есть следующий код. Он создает новый список файлов для редактирования объекта списка файлов входного файла, чтобы я мог создать список всех файлов, которые пользователь хочет загрузить, и дать ему возможность удалить или повторно загрузить некоторые из них:
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;
}
К сожалению, он не будет работать на iOS и MacOS, поскольку конструктор DataTransfer не существует. Я получаю следующую ошибку:
[Error] TypeError: function is not a constuctor (evaluating 'new DataTransfer')
Здесь вы можете увидеть совместимость объекта DataTransfer: developer.mozilla.org
Теперь мой вопрос: есть ли альтернатива, которая работает в Safari?