chrome 监听touch类事件报错:无法被动侦听事件preventDefault

先上错误信息:

Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/...

一个简单的页面只有这么段js

document.addEventListener('touchstart',function(event){    event.preventDefault();},false);

报的一个好错误,真是日了狗了,一直这么写的代码,什么情况?

原来,是新版chrome,给这个preventDefault返回了naive,不再是清除浏览器默认行为了。

那这怎么搞?

现在mdn上搜索一番:

event.cancelable 浏览器默认行为是否可以被禁用

event.defaultPrevented 浏览器默认行为是否已经被禁用

好像mdn上的event.preventDefault()方法还没更新到最新

那这就可以解决问题了,如果event.cancelable=false,是什么意思?不让开发者主动去禁用么?

但是event.defaultPrevented也是false,这个又怎么说?明明是没有清除默认行为,却又禁止清除默认行为!!!

好吧,我是一个渺小的开发者,我只能该自己的代码:

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

注册处理函数时,用如下方式,明确声明为不是被动的

window.addEventListener('touchmove', fn, { passive: false })  

本人资历尚浅,无法给各大社区提这个小意见

不过,这样一来,好像不用我们在手动清除默认行为了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原来经常使用的一段代码,本人几乎使用touchmove的情况居多,移动端要禁止滑动操作: 新版chrome,给这个...
    fixppy阅读 945评论 0 0
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,701评论 1 11
  • 本节介绍各种常见的浏览器事件。 鼠标事件 鼠标事件指与鼠标相关的事件,主要有以下一些。 click 事件,dblc...
    许先生__阅读 2,848评论 0 4
  • 以下文章为转载,对理解JavaScript中的事件处理机制很有帮助,浅显易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy阅读 3,173评论 1 10
  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 1,333评论 3 11

友情链接更多精彩内容