Google Maps Uncaught TypeError:b.has不是函数

时间:2018-11-28 02:25:55

标签: javascript google-maps-api-3

我们将内部代码中包含Google Maps API V3的代码如下:

script src =“ https://maps.googleapis.com/maps/api/js?key=&libraries=places,geometry”

这一直工作到几个小时前(美国东部标准时间上午9点),现在在控制台中返回的所有信息是:

未捕获的TypeError:b.has不是来自https://maps.googleapis.com/maps-api-v3/api/js/35/3/map.js

的函数

还有其他人遇到同样的问题吗?

当包含Google服务器中的代码时,如何解决?

4 个答案:

答案 0 :(得分:8)

遇到了同样的问题,使用较旧的版本暂时修复了该问题:

https://maps.googleapis.com/maps/api/js?v=quarterly&key=API_KEY

长期修复-您可能覆盖了本机窗口。请参见https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Map

答案 1 :(得分:4)

我们在这里有同样的问题。我们有到最新版本的链接: https://maps.googleapis.com/maps/api/js?key= ...

如果我们将版本强制为3.34,则可以达到目的: https://maps.googleapis.com/maps/api/js?v=3.34&key=

版本3.35无法正常工作。 Google已经取代了地图(哈希地图,而非图形地图)使用的用于搜索键的功能。 hasOwnProperty(b,c)-> b.has(c)

问题是“ b”不具有“具有”功能。

我现在没有更多信息。我们正在继续调查。

祝大家好运。

问候 文森特

编辑: 好,现在我知道发生了什么。在地图的某个位置,我们正在重新定义原型“地图”。该原型不包含方法“ has”,也可能不包含“ set”(对我们而言就是这种情况)。 您必须搜索类似“ Map.prototype”的内容。在jour JS文件中。这将给您提示您必须在何处更正JS的提示。 如果您无法取消此原型,则必须重新定义缺少的方法。 例如,我们有以下原型:

function Map(){
    this.obj = {};
    this.count = 0;
}

我们必须使用以下方法来完成此原型:

Map.prototype.has=function(key){
    return this.obj[key] !== undefined;
}

Map.prototype.set = function(key, value){
    var oldValue = this.obj[key];
    if(oldValue == undefined){
        this.count++;
    }
    this.obj[key] = value;
    return oldValue;
}

通过此更正,GoogleMaps JS 3.35版可以正常工作。

希望对您有帮助。

关于, 文森特

答案 2 :(得分:0)

类似的事情。高流量应用中的静态成熟代码。工作8年以上。直到今天早上。原来,我们一直在使用GMap API声明的保留ID作为我们的内部对象实例之一(“ Map”)。不知道为什么决定今天是打击日。我们正在链接旧版本的API(3.29)。 Google方面的事情显然发生了变化。

答案 3 :(得分:0)

相同的问题,但突然出现了另一个错误:

map.js:56未被捕获的TypeError:this.j.keys不是函数

强制版本为3.34,但3.35不会加载地图或标记时没有问题。

在经过数小时的尝试来找出问题之后,重命名了一个js类,因此不再被Map修复。