【问题标题】:get current Position with html and use it with javascript使用 html 获取当前位置并将其与 javascript 一起使用
【发布时间】:2014-01-12 12:23:50
【问题描述】:

我想使用 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"

【问题讨论】:

    标签: javascript jquery html geolocation


    【解决方案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);
            });
        }
    });
    

    【讨论】:

    • 感谢它的工作,但它是一个坏新。我的想法是在加载时在每个页面上都有位置。例如,我想用我的位置发表评论,但我不希望用户等待发布它的请求:(这是一种将位置存储在 cookie 中的解决方案?
    • 我使用 sessionStorage 而不是 cookie
    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2012-06-10
    • 2018-04-21
    • 2019-08-14
    • 2016-12-01
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多