错误:initMap不是函数

时间:2017-02-28 21:06:38

标签: google-maps

我有一个独特的问题,即我有一个有很多有趣地方的社交网站。每个地方都有谷歌地图。今天我看到了一个问题。

当我添加带地址的新地点从谷歌api制作地图时,它不起作用。

我之前已经检查过添加的地方,但他们通常都有地图,但错误

  

“initMap不是函数”。

什么错了?为什么在新创建的地方从谷歌api地图不起作用?我用我的api键使用它:

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

2 个答案:

答案 0 :(得分:3)

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

<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>

答案 1 :(得分:1)

是否有一个名为&#34; initMap&#34;的函数在你的代码?如果不是,您将收到此错误。 async属性允许浏览器在加载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();我在我的代码中手动删除了回调参数。在调用函数加载它之前,地图不会加载。

我希望这有帮助!