[英]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.