当浏览包含许多文件的文件夹时,带有accept attr的HTML输入文件会挂起

时间:2017-07-10 13:28:34

标签: javascript html file google-chrome input

我正在为MMS消息开发一个文件选择器,它接受有限数量的MIME类型或扩展名。

当我点击浏览( Mac ,Chrome 60和Chrome Canary 61,Firefox,Safari)时,我的最后一个文件夹会打开一个系统文件选择器,它会使未接受的文件变灰。

碰巧我的测试文件夹是下载,现在有大约600个文件或不同类型的东西。重要的是文件夹包含不同的文件类型,就像在不同的文件夹上一样,只有.png就可以了。

文件选择器(和浏览器)'挂起',乍一看。实际上它在一两(sic!)分钟之后用如上所述的文件列表取消。

有没有人遇到过这个?如何解决?

只有Mac问题。 在Windows 10上没有看到同样的问题,一切顺利。

var accept = ['image/jpeg',
  'image/png',
  'image/bmp',
  'image/gif',
  'image/tiff',
  'image/svg',
  'video/3gpp',
  'video/mp4',
  'video/mpeg',
  'video/msvideo',
  'audio/mpeg',
  'text/vcard',
  'application/zip',
  'application/rtf',
  'application/gzip'
];

var accepted_extensions = ['.jpg'].concat(accept
  .map(function(item) {
    return '.' + item.split('\/')[1];
  }));

document.querySelector('input.mime')
  .accept = accept.join(',');

document.querySelector('input.ext')
  .accept = accepted_extensions.join(',');
label {
  display: block;
  font-size: 16px;
  margin-bottom: 10px;
  margin-top: 20px;
}
<div>
  <label>Accept for MIME types</label>
  <input type="file" class="mime" multiple />
</div>
<div>
  <label>Accept for extensions</label>
  <input type="file" class="ext" multiple />
</div>
<div>
  <label>Without Accept property</label>
  <input type="file" multiple />
</div>

(演示:http://jsbin.com/zowixof/edit?js,output

1 个答案:

答案 0 :(得分:0)

在我的测试文件夹上执行了bisect搜索,看起来所有的缓慢都是由一个Djvu文件引起的。

相关的门票讨论是: