2017-02-28 96 views
0

我有一个独特的问题,即我有一个有很多有趣的地方的社交网站。每个地方都有一个谷歌地图。今天我看到一个问题。错误:initMap不是函数

当我用google地图添加新地址来制作地图时,它不起作用。

我检查先前添加的地方,他们通常有地图,虽然错误

"initMap is not a function".

的哪些错误?为什么在新创建的地方从谷歌API地图不起作用?我用我的API密钥:

<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_API&callback=initMap"></script> 

回答

1

在代码中是否有一个名为“initMap”的函数?如果没有,你会得到这个错误。异步属性可让浏览器在加载Maps JavaScript API时呈现网站的其余部分。当API准备就绪时,它将调用使用callback参数指定的函数。如果您想要使用不同名称的不同回调函数,那很好,但您必须相应地修改此请求URL。如果您愿意,也可以完全删除回调参数,但您需要在代码中调用函数来加载地图。如果你这样做,你还需要删除异步延迟,否则你会得到一个错误,说谷歌没有定义。修改后的脚本标签是:

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script> 

我有一个例子在这里展示了这一点:

https://jsfiddle.net/gy3yg9ma/11/

请插入使用示例自己的API密钥。注意我必须调用initMap();手动在我的代码中,因为我删除了回调参数。只有调用函数才能加载地图,地图才会加载。

我希望这有助于!

2

可能来自代码中的脚本位置。确保;

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script> 

在包含initMap函数的脚本块后加载。

<script type="text/javascript"> 
function initMap() { 
// 
} 
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script>