前一段时间用mui写html页面时,a标签跳转报错
Unable to preventDefault inside passive event listener due to target being treated as passive.
翻译:chrome 监听touch类事件报错:无法被动侦听事件preventDefault,是新版本chrome 浏览器报错。
preventDefault()作用:取消默认事件,这个函数起作用的,比如默认的表单提交,a链接的点击跳转,就不好用了
具体情况:
从 chrome56 开始,在 window、document 和 body 上注册的 touchstart 和 touchmove 事件处理函数,会默认为是 passive: true。浏览器忽略 preventDefault() 就可以第一时间滚动了。
怎么样不让控制台提示,而且 preventDefault() 有效果呢
1、注册处理函数时,用如下方式,明确声明为不是被动的
window.addEventListener(‘touchmove’, func, { passive: false })
2、应用 CSS 属性 touch-action: none; 这样任何触摸事件都不会产生默认行为,但是 touch 事件照样触发。