js 全局變數失敗?
navigator.geolocation.getCurrentPosition(successCallback);
function successCallback(position){
var lat = position.coords.latitude;
var long = position.coords.longitude;
}
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: lat, lng: long},
zoom: 8
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=xxx&callback=initMap"
async defer></script>
更新代碼~
這樣要怎麼把lat跟long 丟到initMap?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
资料参考:https://developer.mozilla.org...
上面解释了getCurrentPosition()方法是一个异步执行方法:
而alert(lat)是同步代码,会先执行,也就是在lat没有赋值的情况下就被执行到了,会打印undefined
这个很正常啊,因为你的
successCallback
没有被调用啊,它是一个回调函数,而你现在的写法执行到alert(lat)
的时候不一定就回调了。你在
successCallback
的最好调用initMap
就好啦啊。你想用的话,就在那个
successCallback
里面用因为只有里面才能保证有这个值。因为是异步的