EB.*_*EB. 2 html javascript jquery google-maps
我知道这个问题已经被问到了.但我仍然无法超越它.我只是想在js小提琴中加载googlemaps API.我无法解决错误:initMap不是一个函数.我的jsfiddle在这里:jsfiddle
我的代码:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: { lat: 34.397, lng: 150.644 },
scrollwheel: false,
zoom: 2
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="map" style="width: 500px; height: 400px;"></div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDieZ7uAY4DPdT3Z4fp4KtykHl6dWryYdw&callback=initMap">
</script>
Run Code Online (Sandbox Code Playgroud)
当我有函数initmap(){}(带括号)时,地图不会加载,我得到错误.当删除function initmap{}和只是:
var map = new google.maps.Map(document.getElementById('map'), {
center: { lat: 34.397, lng: 150.644 },
scrollwheel: false,
zoom: 2
});
Run Code Online (Sandbox Code Playgroud)
地图加载,但我仍然得到错误:
initMap不是一个函数
它可能与回调有关.我有一段时间没有写过javascript.但我只需要克服这个错误.谢谢
在小提琴中,你没有关闭iniMap()with 的语法错误}.此外,该函数是在DOM加载后定义的.解决这个问题:
<body>或<head>
这是如何处理这些.
将initMap在全球范围内.不要将函数定义包装在私有或匿名范围内
(function(){
function initMap(){
//
}
})();
Run Code Online (Sandbox Code Playgroud)
<head>如果可能,定义功能.或者至少在加载API之前<body>.而且从来没有定义initMap后的DOM完全加载速度快如window.onload和document.addEventListener('ondomready', callback)
好的做法
<script>
function initMap(){
//
}
</script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
Run Code Online (Sandbox Code Playgroud)
糟糕的做法:
window.onload
<script>
window.onload = function(){
function initMap(){
//
}
}
</script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
Run Code Online (Sandbox Code Playgroud)
和
<script>
document.addEventListener('ondomready', function(){
function initMap(){
//
}
});
</script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
Run Code Online (Sandbox Code Playgroud)
或者$(function(){ })如果你使用的是jQuery
<script>
$(function(){
function initMap(){
//
}
});
</script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
Run Code Online (Sandbox Code Playgroud)
这是一个如何运作的JSFiddle.
基本上将您的函数置于调用之上 Google API
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: { lat: 34.397, lng: 150.644 },
scrollwheel: false,
zoom: 2
});
} // close function here
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDieZ7uAY4DPdT3Z4fp4KtykHl6dWryYdw&callback=initMap">
</script>
Run Code Online (Sandbox Code Playgroud)
此功能也未正确关闭.
| 归档时间: |
|
| 查看次数: |
32344 次 |
| 最近记录: |