在我的Android应用程序中,用户可以使用ViewPager浏览一些HTML页面,用户可以触摸某个元素以突出显示。Android - JavaScript:触发事件不会触发,直到放大或滚动页面
问题是当使用下面的代码尝试使用javascript获取触摸事件时,elementFromPoint在导航到新页面时返回null,但在用户缩放页面或滚动页面后,它的工作原理是正确的。
我发现touchstart事件的注册发生在缩放或滚动页面后。所以它的工作原理是,虽然它被注册在$(文件)。就绪()
$(document).ready(function(){
document.addEventListener("touchstart", touchstart, false);
});
function touchstart(e) {
var x = e.targetTouches[0].clientX;
var y = e.targetTouches[0].clientY;
el = document.elementFromPoint(x, y);
}
谢谢
谢谢,这段代码运行良好,但是为什么? –
感觉很好笑,但它的作品。顺便说一下,如果您从屏幕外动画您的WebView,则需要在动画完成后运行这些代码行。我将它设置在Animator.AnimatorListener()的onAnimationEnd方法中,它效果很好。我也证实,即使页面的内容不够大,需要滚动,它也能正常工作。 –
布赖恩 - 你还记得如果你没有等待动画完成并且调用缩放/缩小方法,webview是否是白色的? –