一般出现这个问题,肯定大部分人都是使用default-passive-events
插件。
但是随着项目的扩大,default-passive-events难免会和其他插件产生冲突,比如canvas库konvajs
。
在使用konvajs和default-passive-events后,肯定会报:
拖拽时
Unable to preventDefault inside passive event listener invocation.
没办法,我们只能禁用default-passive-events插件
我们新建一个polyfill.js文件
polyfill.js
//去除谷歌的touch事件警告
(function () {
if (typeof EventTarget !== "undefined") {
let func = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function (type, fn, capture) {
this.func = func;
if (typeof capture !== "boolean") {
capture = capture || {};
capture.passive = false;
}
this.func(type, fn, capture);
};
};
}());
然后再main.js文件中引入,一定要在vue初始化之前,最好这个放最开头
main.js
require("./base/utils/polyfill"); // 去除touch事件谷歌提示
然后即可搞定。
这个方案实在jq的板块里找到的,也是难得,贴一下出处:
《Added non-passive event listener to a scroll-blocking 'touchstart' event》
一般出现这个问题,肯定大部分人都是使用default-passive-events
插件。
但是随着项目的扩大,default-passive-events难免会和其他插件产生冲突,比如canvas库konvajs
。
在使用konvajs和default-passive-events后,肯定会报:
拖拽时
Unable to preventDefault inside passive event listener invocation.
没办法,我们只能禁用default-passive-events插件
我们新建一个polyfill.js文件
polyfill.js
//去除谷歌的touch事件警告
(function () {
if (typeof EventTarget !== "undefined") {
let func = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function (type, fn, capture) {
this.func = func;
if (typeof capture !== "boolean") {
capture = capture || {};
capture.passive = false;
}
this.func(type, fn, capture);
};
};
}());
然后再main.js文件中引入,一定要在vue初始化之前,最好这个放最开头
main.js
require("./base/utils/polyfill"); // 去除touch事件谷歌提示
然后即可搞定。
这个方案实在jq的板块里找到的,也是难得,贴一下出处:
《Added non-passive event listener to a scroll-blocking 'touchstart' event》