使用html获取当前位置并与javascript一起使用

使用html获取当前位置并与javascript一起使用,javascript,jquery,html,geolocation,Javascript,Jquery,Html,Geolocation,我想了解HTML5的现状,并将其与javascript结合使用。 我做了一些测试,它可以工作,但在我的最终版本中,我有一个未定义的值 function geolocError(dueToBrowser=true){ if(dueToBrowser){ alert('your browser does not support HTML5 geolocation'); }else{ alert('error with geolocation');

我想了解HTML5的现状,并将其与javascript结合使用。 我做了一些测试,它可以工作,但在我的最终版本中,我有一个未定义的值

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)
返回我
“未定义”

地理位置是异步的,您不能这样做。您应该在getCurrentPosition回调中设置逻辑或使用延迟对象:

见例


谢谢,它很管用,但这是个糟糕的新东西。我有一个想法,当它被加载时,在每一页上都有一个位置。例如,我想用我的位置发布评论,但我不想让用户等待发布请求:(这是一种将位置存储在cookie中的解决方案?我使用了sessionStorage而不是cookie
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);
        });
    }
});