<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>
我是脚本编写新手。这是我显示 map 的代码。但它会抛出一个 Uncaught Error “initMap 不是一个函数”。有人可以帮忙吗?
最佳答案
重命名showMap
至initMap
。 Google 期望调用名为 initMap
的函数因为callback=initMap
您在 Maps API 中加载时传递给它们的 URL 参数。但是你没有一个具有该名称的函数,你只有一个名为 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>
关于javascript - initMap 不是使用 google map API 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46319676/