如何从.getCurrentPosition()函数javascript访问变量

时间:2017-03-18 21:18:05

标签: javascript

这是代码,我希望例如访问此函数之外的纬度变量,例如设置为其值。

var latitude = "b";

var longitude = "c";


navigator.geolocation.getCurrentPosition(function showLocation(position) {

    latitude = position.coords.latitude;

    longitude = position.coords.longitude; 

});

navigator.geolocation.getCurrentPosition(showLocation(position);

$(".test").html(latitude)

2 个答案:

答案 0 :(得分:0)

它不完全漂亮,但这应该有效:

var latitude;
var longitude;

navigator.geolocation.getCurrentPosition(function showLocation(position) {
    latitude = position.coords.latitude;
    longitude = position.coords.longitude;
    continueExecution();                             // or something similar
});

function continueExecution() {
    $(".test").html(latitude)
    ...                                              // blah blah blah
}

注意:由于显而易见的原因,某些浏览器会禁用非HTTPS网站的地理位置。检查以确保您的浏览器不会阻止地理位置。

另一个注意:由于getCurrentPosition调用的异步特性,在检查getCurrentPosition和{{1}的值之前,必须确保longitude内的函数已运行}。

答案 1 :(得分:-1)

首先,您的问题不够明确,您的代码会造成更多混乱。根据我的理解,我假设你想从函数返回纬度值并打印在<div>标签中。查看下面的代码段。这是你想要的吗?

var position = {
   coords : {
      latitude: "b",
      longitude: "c"
   }
}

$(document).ready(function(){
 var location = showLocation(position);
 $(".test").html(location.lat);
});

function showLocation(position) {

var latitude = position.coords.latitude;
var longitude = position.coords.longitude; 

return {
lat: latitude,
lon: longitude
}

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="test">Latitude goes here...</div>