繁体   English   中英

地理位置函数中的JavaScript变量作用域

[英]JavaScript variable scope in geolocation function

我正在尝试使用javascript获取用户的地理位置,因此我可以将该信息用作javascript代码另一部分中的参数,但是我无法正确确定范围。

这是我的代码。 在成功函数中执行警报可以正常工作,但是如果我尝试在函数外部的任何地方访问var lat,则会得到未定义的值。 我将如何解决这个问题?

var lat; var long;
function success(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
alert(lat);
}

function error(msg) {

}

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(success, error);

} else {
  error('not supported');
}

您希望您的代码像这样工作:

navigator.geolocation.getCurrentPosition(success, error); 
alert("Your position is " + lat + ", " + long + ".");
// do some more stuff with lat and long

但是,尚未调用success() ,因此lat仍未定义。 那就是您的成功经理的目的。 检索位置后需要执行的所有代码都放在成功处理程序中。 这将工作:

navigator.geolocation.getCurrentPosition(function (position) {
    success(position);
    alert("Your position is " + lat + ", " + long + ".");
    // do some more stuff with lat and long
}, error);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM