javascript - 安卓-JavaScript : touchstart event not fired until zoom or scroll the page

标签 javascript android webview touch-event touchstart

在我的 Android 应用程序中,用户可以使用 ViewPager 浏览一些 HTML 页面,用户可以触摸一个元素来突出显示。

问题是当尝试使用以下代码使用 javascript 获取触摸事件时,elementFromPoint 在导航到新页面时返回 null,但在用户缩放页面或在页面上滚动后,它可以正常工作。

我发现 touchstart 事件的注册发生在缩放或滚动页面之后。所以它在那之后就可以工作,尽管它是在 $(document).ready() 上注册的

        $(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);  
            }

谢谢

最佳答案

在调用 javascript 后在您的 java 代码中编写下一段代码:

    myWebview.scrollTo(1, 0);
    myWebview.scrollTo(0, 0);

或者先放大再缩小

    myWebview.zoomIn();
    myWebview.zoomOut();

关于javascript - 安卓-JavaScript : touchstart event not fired until zoom or scroll the page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477550/

相关文章:

javascript - 计算数组 B 中主数组 A 中出现的次数

android - 收听新的日历事件

android - 无法使用 ADB : Error Cannot connect to 127. 0.0.1 在 Hyper-V 虚拟机上调试 android 应用程序

android - 通过google play私有(private) channel 部署android应用

android - Cordova 4.0 上 Android Fragment 内的 Cordova webview

javascript - Canvas 中的鼠标坐标不起作用

javascript - 具有回调和完成功能的 jQuery

javascript - 将列表中超过三步的 sibling 隐藏起来的最巧妙方法是什么?

Android Studio Webview 不调用照片库

java - 将字符串作为 url 传递并加载到 webView 中