<html>
<script src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap">
</script>
<body onload="showMap()">
<div id="map"></div>
<script type="text/javascript">
function showMap() {
console.log('at maps');
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: { lat: -34.397, lng: 150.644 }
});
}
</script>
</body>
</html>
我是脚本新手。这是我显示地图的代码。但它抛出了一个未被捕获的错误“initMap不是一个函数”。谁能帮忙?
答案 0 :(得分:2)
将showMap
重命名为initMap
。由于您在Maps API中加载时传递的initMap
网址参数,Google希望调用名为callback=initMap
的函数。但是你没有具有该名称的函数,你只有一个名为showMap
的函数。
此外,通过指定该回调参数,您无需自己显式调用initMap或showMap。因此,请从onload="initMap()"
代码中删除<body>
。
此外,当您在Maps API中加载时,您在网址中输入了拼写错误,而不是:
jskey=YOUR_API_KEY
它应该是:
js?key=YOUR_API_KEY
最后,你错过了我添加的任何<head>
部分,并且我已将该函数移到<head>
中,因此它应该在回调函数获取的时间内定义调用。
所以这应该有效:
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
<script type="text/javascript">
function initMap() {
console.log('at maps');
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: { lat: -34.397, lng: 150.644 }
});
}
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
答案 1 :(得分:1)
迟到的答案,但您可能需要检查此answer。主要问题是,在定义script
之后没有放置map
。代码只是在页面上创建Web元素之前先寻找它。
答案 2 :(得分:0)
向我们谷歌地图你必须首先包括对谷歌地图javascript文件的引用。
将此脚本包含在您的身体下方。
<script src="https://maps.googleapis.com/maps/api/js"></script>
请同时阅读谷歌地图的文档。您也可能需要api密钥。
答案 3 :(得分:0)
将此脚本标记放在您的头部。
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
请务必使用您可以从此处获得的密钥替换YOUR_API_KEY标签..
https://developers.google.com/maps/documentation/javascript/
答案 4 :(得分:0)
您好我也在玩谷歌地图,我看到当您在导航器的不同标签中打开相同的文件时会出现此错误...
我正在谈论&#34;未知:Vb&#34;当您重新启动计算机时,此错误会消除,因此如果不重启,您可以按 F12 &#39;然后转到网络&#39;选项卡(F5),右键单击任何内容然后清除浏览器chache &#39; &安培; &#39; 清除浏览器Cookie &#39; ..
如果错误未捕获:Vb仍按F5两次或三次
此问题的其他参考:
GoogleMaps does not load on page load
无论如何,您的错误都会被抛出,因为您没有指定YOUR_API_KEY并且网址中的参数格式不正确(js?key =)
检查一下:
https://developers.google.com/maps/documentation/embed/get-api-key
答案 5 :(得分:0)
移动google.map API调用
<script src="https://maps.googleapis.com/maps/api/js?key=API_CODE&callback=initMap" async defer></script>
在定义function initMap()
之后的为我解决了此问题。我猜Javasrcipt是按顺序运行的,因此在google.map回调中定义时,它不能使用initMap()函数。