1 錯誤
谷歌瀏覽器報vue項目的錯[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive.
一個組件代碼如下,發生圖中錯誤
2 原因
描述:違反:沒有添加被動事件監聽器來阻止’touchstart’事件,請考慮添加事件管理者’passive’,以使頁面更加流暢。出現如上提示這可能是由於console的過濾器選擇了Verbose
chrome 監聽touch類事件報錯:無法被動偵聽事件preventDefault,是新版本chrome 瀏覽器報錯。
3 解決方法
方法在參考的博客就有,這里就說自己親測的方法。我主要是使用vue-cli3做項目,谷歌瀏覽器用的版本 88.0.4324.150(正式版本) (x86_64)版本。然后使用的解決方法就是:
1、應用 CSS 屬性 touch-action
,在根組件App.vue中的css樣式中添加代碼
<style lang="scss" rel="stylesheet/scss" scoped>
.board {
touch-action:none;//將該屬性寫在根元素上即可之后就不會報錯
width: 100%;
height: 100%;
}
</style>
2、注冊處理函數時,用如下方式,明確聲明為不是被動的
window.addEventListener(‘touchmove’, func, { passive: false })
注:如果還沒有解決,請找度娘幫忙。