奇怪的情况:
在我的plugins.js
文件中我有这个简单的功能:
function getFile(id) {
document.getElementById("fileUploadHidden+" + id).click();
}
它完美适用于网络浏览器 - 甚至在WindowsPhone,iPhone / iPad上......但不适用于Android。看起来android浏览器会忽略.click()
功能。
为什么呢?以及如何解决它?
答案 0 :(得分:3)
我认为你应该添加touchstart
:
var isMobile = {
Android: function() {
return /Android/i.test(navigator.userAgent);
},
BlackBerry: function() {
return /BlackBerry/i.test(navigator.userAgent);
},
iOS: function() {
return /iPhone|iPad|iPod/i.test(navigator.userAgent);
},
Windows: function() {
return /IEMobile/i.test(navigator.userAgent);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
if(isMobile.any){
document.getElementById("fileUploadHidden+" + id).trigger('touchstart');
}else{
document.getElementById("fileUploadHidden+" + id).trigger('click');
}
答案 1 :(得分:0)
如果ID名称为fileUploadHidden
尝试
$("#fileUploadHidden" + id).click();
如果ID名称为fileUploadHidden+
尝试
$("#fileUploadHidden\\+"+id).click();
答案 2 :(得分:0)
我从未为Android浏览器编码,但我首先研究这些问题 警告以查看浏览器是否找到该元素。
尝试:
alert(document.getElementById(“fileUploadHidden +”+ id));
并查看它是[object]还是null。
然后你可以检查它是document.getElementById还是产生问题的click方法。
以下是一些相关主题:
答案 3 :(得分:0)
它可能是一个浏览器问题。
试试这个。
var elem = document.getElementById("fileUploadHidden+" + id);
if (elem.onclick) {
elem.onclick();
} else if (elem.click) {
elem.click();
}
答案 4 :(得分:0)
在我的小经验中,我用一个名为zepto.js的库解决了点击/点击问题,基本上是一个支持sreen事件的轻量级jquery库 http://zeptojs.com/
问题是点击和点击不完全相同,系统可以在不同的模式下处理它。 Zepto有一个方法tap(),可能是你的解决方案。 你可以看到手势方法 http://zeptojs.com/#modules