Google chrome 浏览器在52版本之后出现一个bug,就是点击 input file上传按钮时反应很慢,需要等待3-5秒种之后才能弹出选择文件的对话框。比如
<input id="file1" type="file" multiple="" accept="image/*">
改成:
<input id="file1" type="file" multiple="" accept="image/jpeg,image/gif,image/png">
问题解决。
但是飘易还要支持zip、rar、pdf呢!再改成:
<input id="file1" type="file" multiple="" accept="image/jpeg,image/gif,image/png,application/zip,.rar,application/pdf">
不幸的是延迟弹出的bug再次出现。
网上找到一篇文章:chrome 上传文件 控件,点击的时候会延迟近10S的时间
这个文章里分析出了问题的根本原因:
新版chrome在点击input file时,如果你仅仅上传图片,chrome是不会检查这些图片是否有危害性的,但是如果你的input file支持zip、apk等类型的文件时,chrome会将这些文件的特征信息提交到google的海外服务器进行分析比对,以提醒用户文件安全与否,这本来是一件好事,但是众所周知,google的服务在国内是基本被QIANG了,国内无法访问。
【解决问题】:
chrome设置里去掉“保护您和您的设备不受危险网站的侵害”前面的勾即可。
禁止google向海外服务器提交文件的特征信息就可以了。
另外,还有一个以毒攻毒的方法:
可以在点击选择文件时:
document.getElementById('fileImport').value = null;
把input的文件置为空,这样点击的时候就不会去请求了! 但是这个方法有一些后遗症,请自行测试。