问题描述:
苹果端点击上传按钮不拉起相册或拍照,但是安卓和PC端可以正常拉起。
问题分析:
七牛的qiniu.js根据提供的按钮id和父级id会创建隐藏的type为file的input,之所以iOS上不呼出上传图片的按钮,是因为没有触发到七牛创建的input,原因可能是被自己的按钮阻挡了事件,七牛会自己根据所提供标签的z-index层级然后降1级创建新标签
解决办法:
自己主动触发七牛的js
因为只有在苹果端发生了这个问题,所以要在JS判断是不是苹果端,如果不判断的话会在安卓端和PC端弹出两次选择框;
// 判断是不是苹果终端
var u = navigator.userAgent,isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
// 正常触发的按钮ID
$("#headimg").click(function () {
if(isiOS){
// 找他div兄弟的input儿子,然后点击他
$(this).siblings("div").children("input").trigger("click");
return false;
}
});