无法在Android设备上的Javascript中获取touchevents的坐标

我正在testingHTML5canvas,并使用Javascript绘制触控设备。 虽然我有它在iOS设备上工作,我不能让它在Android上工作。 我已经缩小到event.pageX不返回坐标,而是返回0或未定义(基于浏览器)。

我已经在Opera Mobile和Dolphin浏览器上运行Cyanogen 7.1的手机上testing过了,运行标准浏览器的Galaxy Tab 10.1(Android 3.1)也testing过了。

我已经修改了代码来显示一个touchstart事件的警报,显示event.pageX,event.layerX和event.clientX坐标(我知道clientX只能在iOS上工作)。

canvas.addEventListener('touchstart', function(e) { if (readyToDraw){ alert("PageX: "+e.pageX+","+e.pageY+"\n LayerX: "+e.layerX+","+e.layerY+"\n + clientX: "+e.clientX+","+e.clientY); // prevent the browsers default action! e.preventDefault(); paint = true; // Get coordinates var c = getCoords(e); addClick(cx, cy, false); } }); 

我已经得到了完整的绘图在iOS中工作,但甚至不能让Android注册坐标,任何想法?

最终编辑:我解决了这个问题,看到接受的答案。

Solutions Collecting From Web of "无法在Android设备上的Javascript中获取touchevents的坐标"

最终编辑:好的我得到它的工作,如果有人发现这一点,并有类似的问题,你需要访问事件内的触摸arrays,如果只是使用一个触摸(而不是多点触摸)把第一个项目的arrays,如下所示,或者如果不正确,则可能需要抵消它:

 var touch = event.touches[0]; var x = touch.pageX; var y = touch.pageY; // or taking offset into consideration var x_2 = touch.pageX - canvas.offsetLeft; var y_2 = touch.pageY - canvas.offsetTop; 

没有为我工作(在iScroll 5上下文中)。 使用changedTouches[0] ,如鼠标单击event.pagex中提出的是移动铬浏览器(v30.0.1599.92)中的NaN 。