我想通过HTML5获取当前位置并将其与javascript一起使用。
我做了一些测试,它确实有效,但在我的最终版本中,我有一个undefined
值。
function geolocError(dueToBrowser=true){
if(dueToBrowser){
alert('your browser does not support HTML5 geolocation');
}else{
alert('error with geolocation');
}
}
function getPositon(){
return navigator.geolocation.getCurrentPosition(function(position){
return position.coords;
}, geolocError);
}
$(document).ready(function() {
if(navigator.geolocation) {
var pos = getPositon();
console.log(pos)
}
});
我的console.log(pos);
会将"undefined"
返回给我。
答案 0 :(得分:1)
地理位置是异步的,你不能这样做。您应该在getCurrentPosition回调中设置逻辑或使用延迟对象:
参见例如jsFiddle
var defer = $.Deferred();
function getPositon() {
navigator.geolocation.getCurrentPosition(function (position) {
defer.resolveWith(position.coords);
}, geolocError);
return defer;
}
$(document).ready(function () {
if (navigator.geolocation) {
getPositon().done(function () {
console.log(this);
});
}
});