网上各种稀奇古怪的解法都有:
1、卸载 default-passive-events 插件的,这种我刚卸载完,直接项目崩了,老老实实重新装回去,重启项目恢复了;
2、利用css方法,pointer-events: none; 在你的css里面添加这玩意,好嘛,至少在这里没啥用
3、创建对象的事件监听,关闭事件的默认行为 也就是这样的:
window.addEventListener("事件名称", handler, { passive: false });但是前提是这个事件是你自己监听的你才能去控制默认行为
详细可以看下这个朋友的web前端:Unable to preventDefault inside passive event listener invocation的产生原因及解决_zctsir的博客-CSDN博客
我的解决方案:
1、在openlayers实例化的时候,在里面加一行代码,目的就是贼暴力,我不让你用鼠标滚轮缩放好了吧,这样就没有报错了(条件允许就用):interactions: defaults({mouseWheelZoom:false})
附截图:
2、根本上解决,但是我不知道是否回存在弊端(目前没发现,因为我只是将他的默认行为关闭了),找vue项目引入的node_modules 里面 文件: ol/interaction/MouseWheelZoom.js 这个js文件里面搜索 wheelEvent.preventDefault() 直接注释掉它,看的烦。
3、综上,基本所有的 Unable to preventDefault inside passive event listener invocation.报错问题都可以用这些方法尝试解决,但是个人认为从事件角度角度出发去解决比较好,谁引起的让谁去关闭。