阅读:6197回复:0
chrome 监听touch类事件报错:无法被动侦听事件preventDefault;Unable to preventDefault inside passive event listener
先上错误信息:
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); 本人资历尚浅,无法给各大社区提这个小意见 不过,这样一来,好像不用我们在手动清除默认行为了 |
|