我认为IE11中的一个偷偷摸摸的漏洞正在悄悄进入并打破Dropzone。第1653行:
key: "handleFiles",
value: function handleFiles(files) {
var _this5 = this;
return files.map(function (file) {
return _this5.addFile(file);
});
}
在IE11中,如果你打电话给typeof(files)
,你就会得到对象 - 而不是数组。它确实有一个长度属性,但是,其他很少。没有地图功能。 files.map(...
会抛出异常。
答案 0 :(得分:3)
我在Safari 11.01中看到了这个错误,所以它不仅限于IE。
如果你正在使用jQuery,你可以像这样快速地填充这个:
key: "handleFiles",
value: function handleFiles(files) {
var _this5 = this;
files = $.makeArray(files);
return files.map(function (file) {
return _this5.addFile(file);
});
}
就像那样,文件对象变成了一个带有地图功能的合法数组,一切都进行到计划中。
请注意,典型的Polyfill不会解决此问题; IE11确实有一个Array.prototype.map
- 这里files
中保存的数据结构不是一个合适的数组。