手机浏览器打开页面,页面所有的tap事件都不可用?

发布于 2022-09-06 11:41:53 字数 575 浏览 36 评论 0

某些手机的自带浏览器打开页面,tap事件都没有起作用。页面引入的是zepto.js,我试过了引入event.js,touch.js也不起作用,把tap事件换成click事件还有touchstart事件也没有作用。之前控制台有这样的警告:Unable to preventDefault inside passive event listener due to target being treated as passive。

我试过网上别人的方法:
在js中添加这一段,貌似也没有效果。
document.addEventListener('touchstart', function(event) {

    // 判断默认行为是否可以被禁用
    if (event.cancelable) {
        // 判断默认行为是否已经被禁用
        if (!event.defaultPrevented) {
            event.preventDefault();
        }
    }
}, false);

PS:QQ浏览器打开页面没有问题,但是还几款安卓自带浏览器打开页面之后所有事件都失效。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

暗地喜欢 2022-09-13 11:41:53

引入fastclick试试

空城之時有危險 2022-09-13 11:41:53

在手机上打开"开发者模式",通过USB debugger一下。
看看报什么错。

我的经验,你先试试IE9 10.如果这两个浏览器,正常运行了。手机就应该没问题了。还是建议你usb debugger吧。

深海不蓝 2022-09-13 11:41:53

图片描述

图片描述

图片描述

这个是IE9,10,11分别测试的结果,无论是点击还是滚动鼠标都会不停得报错。请问这个是什么原因导致的?手机内置的浏览器和IE是一个内核吗?谢谢~

瞳孔里扚悲伤 2022-09-13 11:41:53

当在事件回调函数中使用 event.preventDefault() 的时候某些函数会出现你说的那个提示,这个不影响事件运行,只是不能阻止默认行为。
click 事件在移动端的触发条件是 touchstart 和 touchend 正常触发,使用 preventDefault 拦截其中一个以后 click 事件不会触发。有拦截需求可以放在 touchmove 中。
至于你说的 touchstart 没有触发不太清楚。

最美不过初阳 2022-09-13 11:41:53

你用的js库是不是会阻止默认点击事件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文