【问题标题】:Javascript Google Maps API & non-passive event handlersJavascript Google Maps API 和非被动事件处理程序
【发布时间】:2018-05-27 17:14:47
【问题描述】:

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

[违规] 向阻止滚动的“touchmove”事件添加了非被动事件侦听器。考虑将事件处理程序标记为“被动”以使页面更具响应性。见https://www.chromestatus.com/feature/5745543795965952

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

【问题讨论】:

  • 所以您是说 Chrome 之前没有显示这些消息?所以你认为更新改变了一切?还是您认为 Maps API 的更新发生了变化?
  • 您好,您解决了吗?我面临同样的问题。谢谢
  • 我面临同样的问题,谷歌地图 api 没有集成被动属性真的很奇怪。有什么解决办法吗?
  • 我面临同样的问题。令我惊讶的是,这个问题还没有得到回答。任何人的任何解决方案?

标签: addeventlistener passive-event-listeners


【解决方案1】:

此时您无能为力。这是由 Google 自己的 API 代码生成的警告。只要您自己的事件侦听器是被动的,我认为可以放心地忽略它。

【讨论】:

  • 您还会注意到,Google 自己的 Maps API 文档中显示的事件监听器示例都没有使用被动事件监听器。
【解决方案2】:

这对我有用。到了https://stackoverflow.com/a/55388961/2233069

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

【讨论】:

    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多