解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passiv

Posted bossing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passiv相关的知识,希望对你有一定的参考价值。

问题描述:点击返回按钮时,每次在控制台都出现如下错误:

技术图片

 mui.min.js:13 Unable to preventDefault inside passive event listener due to target being treated as passive.

解决办法

定位到mui.min.js的报错行,发现报错的代码是a.preventDefault(),遂在mui.min.js中将a.preventDefault()注释掉,问题解决。

问题分析

preventDefault() 函数具体实现什么功能?注释掉对具体功能有没有影响呢?

preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。例如:可以利用event.preventDefault()阻止a标签跳转。

由于浏览器无法预先知道一个事件处理函数中会不会调用 preventDefault(),它需要等到事件处理函数执行完后,才能去执行默认行为,然而事件处理函数执行是要耗时的,这样一来就会导致页面卡顿,也就是说,当浏览器等待执行事件的默认行为时,大部分情况是白等了。

如果 Web 开发者能够提前告诉浏览器:“我不调用 preventDefault 函数来阻止事件事件行为”,那么浏览器就能快速生成事件,从而提升页面性能,Passive event listeners 的提出就解决了这样的问题。

 

在我的项目中,通过注释掉preventDefault()成功解决了控制台报错的问题,暂时未发现影响其他功能。

以上是关于解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passiv的主要内容,如果未能解决你的问题,请参考以下文章

unable to lock the administration错误解决

Unable to locate package错误解决办法

Unable to locate package错误解决办法

AS问题解决系列1—Unable to execute DX错误

Git 克隆仓库报unable to get local issuer certificate错误解决方法

Git 克隆仓库报unable to get local issuer certificate错误解决方法