之前在HTML5 File API — 打开本地图片并预览里提供一种模拟单击file控件的方法,后来发现这种方法在safari下无法使用。。。之前的旅行笔记和天地图版都是这样,导致safari下点击打开文件按钮不可用,也不提示错误,也不知道是不是这个原因比赛没有入围,唉。。。。
解决方法很简单,其实不是不能模拟safari,之前<input type="file"/>隐藏用的是display:none,之后改成visibility:hidden,就可以用了!!!我擦。
原因估计就是didplay没有占位了,safari找不到了。。。。
此外,safari下的file的accept属性不可用,所以在选择文件的时候需要判断,在file的change事件函数里判断一下:
$(‘#file‘).change(function(e) { var f = e.target.files[0]; if(!f.type.match(‘image.*‘)) { alert(‘你选择的不是图片文件‘); return; } //_this.openFile(f); });
这里因为只选择一个文件,如果可选多个文件,就循环判断就行了。
时间: 2024-10-07 18:38:37