JavaScript Google Maps API和非被动事件处理程序

44

最近,Chrome开始发出以下警告:

[违规操作] 添加了一个阻塞滚动“touchmove”事件的非被动事件监听器。考虑将事件处理程序标记为“被动”,使页面更加响应。请参见https://www.chromestatus.com/feature/5745543795965952

这些警告来自JavaScript Google Maps API代码。 我可以在自己的代码中添加{passive:true}以在addEventListener()中使用,但不知道如何抑制Google库中的警告?


那么你的意思是Chrome以前没有显示这些消息?你认为更新改变了什么吗?还是你认为Maps API的更新改变了什么? - Abraham Luna
你好,你解决了这个问题吗?我也遇到了同样的问题。谢谢。 - Philippe Corrèges
我也遇到了同样的问题,而且很奇怪的是谷歌地图API没有整合被动属性。有什么解决办法吗? - el3ati2
我也遇到了同样的问题。令我惊讶的是,这个问题竟然还没有得到解答。有没有人有解决方案? - russell
2个回答

1

这对我有效。到达了这里 https://dev59.com/zVYO5IYBdhLWcg3wRfZ-#55388961

(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);
        };
    };
}());

0

目前你无法做任何事情。这是由谷歌自己的 API 代码生成的警告。只要你自己的事件监听器是被动的,我认为可以安全地忽略它。


您还会注意到,在谷歌自己的地图API文档中展示的所有事件监听器示例都没有使用被动事件监听器。 - bytes4me

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接