为滚动阻止“touchstart”事件添加了非被动事件侦听器
突然间,今天突然间,我开始在我们网站的每个页面上看到这个
Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive
它不仅仅是一两次……它就像成千上万的……
他们疯了。
阻止洪水泛滥的唯一方法就是注释掉这条线
我阅读了其他关于这种违规意味着什么的post,但是我真的看不到我在两小时前和现在之间做了什么不同(我做了一次完全回滚只是为了看看是否有帮助)
它几乎就像有人把一个bug放到了jquery.min.js中,但是我非常怀疑这个原因然后每个人都会得到它。
有任何想法吗? 我试着尽我所能调试,我仍然不知道是什么原因造成的?!?
UPDATE
我替换了所有 width
这删除了99%的违规行为,
好吧再多挖一点,这不是一个新的行为,它已经被报道了一段时间,jQuery仍然没有修复它。
问题在于,对于处理程序是passive
,必须确定永远不会调用preventDefault()
但jQuery事先并不知道…
我能给你的唯一提示是更改你的控制台日志记录级别并删除“详细”。 关于解决这个问题的想法,请关注这个问题 。
这解决了我的问题:
jQuery.event.special.touchstart = { setup: function( _, ns, handle ){ if ( ns.includes("noPreventDefault") ) { this.addEventListener("touchstart", handle, { passive: false }); } else { this.addEventListener("touchstart", handle, { passive: true }); } } };