safari下无法模拟click()的解决方法 ------转载
个人体会:visibility:hidden 会占用物理空间,而display不会,所以可以再给<input type="file"/>添加cssStyle="visibility:hidden;position:absolute;left:10px;top:50px;"来控制它的绝对位置,可以放到页面角落空白处隐藏。
就不会影响美观了。
以下是网上搜到的解决办法:
之前在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); });
这里因为只选择一个文件,如果可选多个文件,就循环判断就行了。
标签:class java html 文件 使用 com 方法 log http
原文:http://www.cnblogs.com/zjzhome/p/3936877.html