我们将内部代码中包含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服务器中的代码时,如何解决?
答案 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修复。