使用html获取当前位置并使用javascript

时间:2014-01-12 12:23:51

标签: javascript jquery html5 geolocation

我想通过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"返回给我。

1 个答案:

答案 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);
        });
    }
});